Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'test/acceptance/rewrites_test.go')
-rw-r--r--test/acceptance/rewrites_test.go59
1 files changed, 59 insertions, 0 deletions
diff --git a/test/acceptance/rewrites_test.go b/test/acceptance/rewrites_test.go
new file mode 100644
index 00000000..a446a8cd
--- /dev/null
+++ b/test/acceptance/rewrites_test.go
@@ -0,0 +1,59 @@
+package acceptance_test
+
+import (
+ "io/ioutil"
+ "net/http"
+ "testing"
+
+ "github.com/stretchr/testify/require"
+
+ redirects "gitlab.com/gitlab-org/gitlab-pages/internal/redirects"
+)
+
+func TestRewrites(t *testing.T) {
+ RunPagesProcess(t,
+ withListeners([]ListenSpec{httpListener}),
+ withEnv([]string{redirects.FFEnablePlaceholders + "=true"}),
+ )
+
+ tests := map[string]struct {
+ host string
+ path string
+ expectedBody string
+ }{
+ "rewrite_for_splat_with_replacement": {
+ host: "group.redirects.gitlab-example.com",
+ path: "/project-redirects/arrakis/visitors-guide.html",
+ expectedBody: "Welcome to Dune!",
+ },
+ "splat_with_no_replacement": {
+ host: "group.redirects.gitlab-example.com",
+ path: "/project-redirects/spa/client/side/route",
+ expectedBody: "This is an SPA",
+ },
+ "existing_content_takes_precedence_over_rewrite_rules": {
+ host: "group.redirects.gitlab-example.com",
+ path: "/project-redirects/spa/existing-file.html",
+ expectedBody: "This is an existing file",
+ },
+ "rewrite_using_placeholders": {
+ host: "group.redirects.gitlab-example.com",
+ path: "/project-redirects/blog/2021/08/12",
+ expectedBody: "Rewrites are pretty neat!",
+ },
+ }
+
+ for name, tt := range tests {
+ t.Run(name, func(t *testing.T) {
+ rsp, err := GetPageFromListener(t, httpListener, tt.host, tt.path)
+ require.NoError(t, err)
+ defer rsp.Body.Close()
+
+ body, err := ioutil.ReadAll(rsp.Body)
+ require.NoError(t, err)
+
+ require.Contains(t, string(body), tt.expectedBody)
+ require.Equal(t, http.StatusOK, rsp.StatusCode)
+ })
+ }
+}