Fix infinite redirect on www subdomain

Add first route tests
This commit is contained in:
Tom Moor
2018-11-12 22:45:51 -08:00
parent 1d906c7f68
commit a95632b9de
2 changed files with 35 additions and 1 deletions

View File

@ -70,13 +70,19 @@ router.get('/', async ctx => {
const subdomain = domain ? domain.subdomain : undefined;
const accessToken = ctx.cookies.get('accessToken');
// Because we render both the signed in and signed out views depending
// on a cookie it's important that the browser does not render from cache.
ctx.set('Cache-Control', 'no-cache');
// If we have an accessToken we can just go ahead and render the app if
// the accessToken turns out to be invalid the user will be redirected.
if (accessToken) {
return renderapp(ctx);
}
if (subdomain) {
// If we're on a custom subdomain then we display a slightly different signed
// out view that includes the teams basic information.
if (subdomain && subdomain !== 'www') {
const team = await Team.find({
where: { subdomain },
});
@ -98,6 +104,7 @@ router.get('/', async ctx => {
return;
}
// Otherwise, go ahead and render the homepage
return renderpage(
ctx,
<Home

27
server/routes.test.js Normal file
View File

@ -0,0 +1,27 @@
/* eslint-disable flowtype/require-valid-file-annotation */
import TestServer from 'fetch-test-server';
import app from '.';
import { flushdb } from './test/support';
const server = new TestServer(app.callback());
beforeEach(flushdb);
afterAll(server.close);
describe('#index', async () => {
it('should render homepage', async () => {
const res = await server.get('/');
const html = await res.text();
expect(res.status).toEqual(200);
expect(html.includes('Your teams knowledge base')).toEqual(true);
});
it('should render app if there is an accessToken', async () => {
const res = await server.get('/', {
headers: { authorization: 'Bearer thisIsAnAccessToken' },
});
const html = await res.text();
expect(res.status).toEqual(200);
expect(html.includes('id="root"')).toEqual(true);
});
});