diff --git a/docker-compose.yml b/docker-compose.yml index 765d899..95dec42 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: '2' +version: "2" volumes: node-modules: services: @@ -100,3 +100,4 @@ services: - app:product-guide.18f.gov - app:methods.18f.gov - app:identityequitystudy.gsa.gov + - app:join.tts.gsa.gov diff --git a/templates/_federalist-redirects.njk b/templates/_federalist-redirects.njk index 62a17b0..26bbdb3 100644 --- a/templates/_federalist-redirects.njk +++ b/templates/_federalist-redirects.njk @@ -662,3 +662,22 @@ server { return 301 https://www.gsa.gov/governmentwide-initiatives/diversity-equity-inclusion-and-accessibility/equity-study-on-remote-identity-proofing; } } + +# join.tts.gsa.gov to tts.gsa.gov and handbook.tts.gsa.gov +server { + listen {{ PORT }}; + server_name join.tts.gsa.gov; + + location ~ ^/working-at-tts/?$ { + return 301 https://handbook.tts.gsa.gov/about-us/tts-history/; + } + + location ~ ^/tts-offices/?$ { + return 301 https://handbook.tts.gsa.gov/#tts-offices; + } + + location / { + return 301 https://tts.gsa.gov/join$request_uri; + } + +} diff --git a/templates/manifest-prod.yml.njk b/templates/manifest-prod.yml.njk index 87cab13..f8e04e2 100644 --- a/templates/manifest-prod.yml.njk +++ b/templates/manifest-prod.yml.njk @@ -55,6 +55,7 @@ routes: - route: portfolios.18f.gov - route: fac.gov - route: identityequitystudy.gsa.gov +- route: join.tts.gsa.gov {% for page in PAGE_CONFIGS -%} - route: {{ page.to }}.{{ page.toDomain }} {% endfor -%} diff --git a/test/integration/test_federalist_redirects.js b/test/integration/test_federalist_redirects.js index 109d136..c36dbe8 100644 --- a/test/integration/test_federalist_redirects.js +++ b/test/integration/test_federalist_redirects.js @@ -41,6 +41,9 @@ const expectedRedirects = [ { from: 'partners.login.gov/state-and-local', to: 'www.login.gov/partners/state-and-local', redirectCode: 301, noPath: true }, { from: 'design.login.gov', to: 'www.login.gov', redirectCode: 301, noPath: true }, { from: 'usdigitalregistry.digitalgov.gov', to: 'touchpoints.app.cloud.gov/registry', redirectCode: 301, noPath: true }, + { from: 'join.tts.gsa.gov', to: 'tts.gsa.gov/join', redirectCode: 301 }, + { from: 'join.tts.gsa.gov/working-at-tts/', to: 'handbook.tts.gsa.gov/about-us/tts-history', redirectCode: 301, noPath: true }, + { from: 'join.tts.gsa.gov/tts-offices/', to: 'handbook.tts.gsa.gov/#tts-offices', redirectCode: 301, noPath: true }, ]; function redirectOk(t, from, to, redirectCode) { @@ -58,7 +61,9 @@ expectedRedirects.forEach((expected) => { const redirectCode = expected.redirectCode || 302; test(`redirects ${expected.from} to ${expected.to} (${redirectCode})`, (t) => { - redirectOk(t, expected.from, `${expected.to}/`, redirectCode); + // hashes don't have trailing slashes + const trailingSlash = expected.to.includes('#') ? '' : '/'; + redirectOk(t, expected.from, `${expected.to}${trailingSlash}`, redirectCode); }); if (!expected.noPath) {