mirror of
https://github.com/kevin-DL/sapper.git
synced 2026-01-15 04:14:46 +00:00
@@ -1,11 +1,10 @@
|
||||
const path = require('path');
|
||||
const assert = require('assert');
|
||||
const Nightmare = require('nightmare');
|
||||
const express = require('express');
|
||||
const serve = require('serve-static');
|
||||
const Nightmare = require('nightmare');
|
||||
const getPort = require('get-port');
|
||||
const fetch = require('node-fetch');
|
||||
const walkSync = require('walk-sync');
|
||||
const fetch = require('node-fetch');
|
||||
|
||||
run('production');
|
||||
run('development');
|
||||
@@ -82,16 +81,18 @@ function run(env) {
|
||||
let sapper;
|
||||
|
||||
if (env === 'production') {
|
||||
const cli = path.resolve(__dirname, '../../cli/index.js');
|
||||
const cli = path.resolve(__dirname, '../../cli.js');
|
||||
exec_promise = exec(`node ${cli} export`);
|
||||
}
|
||||
|
||||
return exec_promise.then(() => {
|
||||
const resolved = require.resolve('../..');
|
||||
const resolved = require.resolve('../../middleware.js');
|
||||
delete require.cache[resolved];
|
||||
delete require.cache[require.resolve('../../core.js')]; // TODO remove this
|
||||
|
||||
sapper = require(resolved);
|
||||
|
||||
return getPort();
|
||||
return require('get-port')();
|
||||
}).then(port => {
|
||||
PORT = port;
|
||||
base = `http://localhost:${PORT}`;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
const path = require('path');
|
||||
const assert = require('assert');
|
||||
|
||||
const create_routes = require('../../lib/utils/create_routes.js');
|
||||
const { create_routes } = require('../../core.js');
|
||||
|
||||
describe('create_routes', () => {
|
||||
it('sorts routes correctly', () => {
|
||||
const routes = create_routes(['index.html', 'about.html', '[wildcard].html', 'post/foo.html', 'post/[id].html', 'post/bar.html']);
|
||||
const routes = create_routes({
|
||||
files: ['index.html', 'about.html', '[wildcard].html', 'post/foo.html', 'post/[id].html', 'post/bar.html']
|
||||
});
|
||||
|
||||
assert.deepEqual(
|
||||
routes.map(r => r.file),
|
||||
@@ -21,7 +21,9 @@ describe('create_routes', () => {
|
||||
});
|
||||
|
||||
it('generates params', () => {
|
||||
const routes = create_routes(['index.html', 'about.html', '[wildcard].html', 'post/[id].html']);
|
||||
const routes = create_routes({
|
||||
files: ['index.html', 'about.html', '[wildcard].html', 'post/[id].html']
|
||||
});
|
||||
|
||||
let file;
|
||||
let params;
|
||||
@@ -40,7 +42,9 @@ describe('create_routes', () => {
|
||||
});
|
||||
|
||||
it('ignores files and directories with leading underscores', () => {
|
||||
const routes = create_routes(['index.html', '_foo.html', 'a/_b/c/d.html', 'e/f/g/h.html', 'i/_j.html']);
|
||||
const routes = create_routes({
|
||||
files: ['index.html', '_foo.html', 'a/_b/c/d.html', 'e/f/g/h.html', 'i/_j.html']
|
||||
});
|
||||
|
||||
assert.deepEqual(
|
||||
routes.map(r => r.file),
|
||||
@@ -52,8 +56,12 @@ describe('create_routes', () => {
|
||||
});
|
||||
|
||||
it('matches /foo/:bar before /:baz/qux', () => {
|
||||
const a = create_routes(['foo/[bar].html', '[baz]/qux.html']);
|
||||
const b = create_routes(['[baz]/qux.html', 'foo/[bar].html']);
|
||||
const a = create_routes({
|
||||
files: ['foo/[bar].html', '[baz]/qux.html']
|
||||
});
|
||||
const b = create_routes({
|
||||
files: ['[baz]/qux.html', 'foo/[bar].html']
|
||||
});
|
||||
|
||||
assert.deepEqual(
|
||||
a.map(r => r.file),
|
||||
@@ -68,16 +76,22 @@ describe('create_routes', () => {
|
||||
|
||||
it('fails if routes are indistinguishable', () => {
|
||||
assert.throws(() => {
|
||||
create_routes(['[foo].html', '[bar]/index.html']);
|
||||
create_routes({
|
||||
files: ['[foo].html', '[bar]/index.html']
|
||||
});
|
||||
}, /The \[foo\].html and \[bar\]\/index.html routes clash/);
|
||||
|
||||
assert.throws(() => {
|
||||
create_routes(['foo.html', 'foo.js']);
|
||||
create_routes({
|
||||
files: ['foo.html', 'foo.js']
|
||||
});
|
||||
}, /The foo.html and foo.js routes clash/);
|
||||
});
|
||||
|
||||
it('matches nested routes', () => {
|
||||
const route = create_routes(['settings/[submenu].html'])[0];
|
||||
const route = create_routes({
|
||||
files: ['settings/[submenu].html']
|
||||
})[0];
|
||||
|
||||
assert.deepEqual(route.exec('/settings/foo'), {
|
||||
submenu: 'foo'
|
||||
@@ -89,7 +103,9 @@ describe('create_routes', () => {
|
||||
});
|
||||
|
||||
it('prefers index routes to nested routes', () => {
|
||||
const routes = create_routes(['settings/[submenu].html', 'settings.html']);
|
||||
const routes = create_routes({
|
||||
files: ['settings/[submenu].html', 'settings.html']
|
||||
});
|
||||
|
||||
assert.deepEqual(
|
||||
routes.map(r => r.file),
|
||||
@@ -98,7 +114,9 @@ describe('create_routes', () => {
|
||||
});
|
||||
|
||||
it('matches deeply nested routes', () => {
|
||||
const route = create_routes(['settings/[a]/[b]/index.html'])[0];
|
||||
const route = create_routes({
|
||||
files: ['settings/[a]/[b]/index.html']
|
||||
})[0];
|
||||
|
||||
assert.deepEqual(route.exec('/settings/foo/bar'), {
|
||||
a: 'foo',
|
||||
|
||||
Reference in New Issue
Block a user