mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2024-11-23 07:38:07 -05:00
c65b0ef907
set-cookie causes the cache to not cache the page. Since we’re not trying to track the user beyond, we don’t want to try resetting the cookie again with the same info
78 lines
2.3 KiB
JavaScript
78 lines
2.3 KiB
JavaScript
var defaults = require('lodash.defaults');
|
|
var fastlyConfig = require('../../bin/lib/fastly-config-methods');
|
|
var route_json = require('../../src/routes.json');
|
|
var tap = require('tap');
|
|
|
|
var testRoutes = [
|
|
{
|
|
name: 'less-traveled',
|
|
pattern: '^/?$',
|
|
routeAlias: '/?$',
|
|
view: 'less-traveled/less-traveled',
|
|
title: 'Robert Frost Goes Here'
|
|
},
|
|
{
|
|
name: 'more-traveled',
|
|
pattern: '^/more?$',
|
|
routeAlias: '/more?$',
|
|
view: 'more-traveled/more-traveled',
|
|
title: 'Robert Frost Does Not Go Here'
|
|
}
|
|
];
|
|
|
|
var routes = route_json.map(function (route) {
|
|
return defaults({}, {pattern: fastlyConfig.expressPatternToRegex(route.pattern)}, route);
|
|
});
|
|
var extraAppRoutes = [
|
|
// Homepage with querystring.
|
|
// TODO: Should this be added for every route?
|
|
'/\\?',
|
|
// View html
|
|
'/[^\/]*\.html$'
|
|
];
|
|
|
|
|
|
tap.test('getStaticPaths', function (t) {
|
|
var staticPaths = fastlyConfig.getStaticPaths(__dirname, '../../build/*');
|
|
t.type(staticPaths, 'object');
|
|
t.end();
|
|
});
|
|
|
|
tap.test('getViewPaths', function (t) {
|
|
var viewPaths = fastlyConfig.getViewPaths(testRoutes);
|
|
t.type(viewPaths, 'object');
|
|
t.equal(viewPaths[0], '/?$');
|
|
t.equal(viewPaths[1], '/more?$');
|
|
t.end();
|
|
});
|
|
|
|
tap.test('pathsToCondition', function (t) {
|
|
var condition = fastlyConfig.pathsToCondition(['/?$', '/more?$']);
|
|
t.type(condition, 'string');
|
|
t.equal(condition, 'req.url~"^(/?$|/more?$)"');
|
|
t.end();
|
|
});
|
|
|
|
tap.test('getAppRouteCondition', function (t) {
|
|
var condition = fastlyConfig.getAppRouteCondition('../../build/*', routes, extraAppRoutes, __dirname);
|
|
t.type(condition, 'string');
|
|
t.end();
|
|
});
|
|
|
|
tap.test('testSetTTL', function (t) {
|
|
var ttl = fastlyConfig.setResponseTTL('itsactuallyttyl');
|
|
t.equal(ttl, '' +
|
|
'if (itsactuallyttyl) {\n' +
|
|
' if (req.url ~ "^/projects/" && !req.http.Cookie:scratchsessionsid) {\n' +
|
|
' set beresp.http.Vary = "Accept-Encoding, Accept-Language";\n' +
|
|
' unset beresp.http.set-cookie;\n' +
|
|
' return(deliver);\n' +
|
|
' } else {\n' +
|
|
' set beresp.ttl = 0s;\n' +
|
|
' set beresp.grace = 0s;\n' +
|
|
' return(pass);\n' +
|
|
' }\n' +
|
|
'}\n'
|
|
);
|
|
t.end();
|
|
});
|