repair regexp routes

This commit is contained in:
cudr
2019-06-02 20:46:12 +03:00
committed by Conv
parent 993bd6cc5b
commit b1e84687c0
6 changed files with 45 additions and 14 deletions

View File

@@ -0,0 +1,8 @@
<script>
import { stores } from '@sapper/app';
const { page } = stores();
</script>
<h1>Regexp page {$page.params.id}</h1>
<a href="regexp/234">nested regexp route</a>

View File

@@ -3,4 +3,6 @@
const { page } = stores();
</script>
<h1>{$page.params.slug.toUpperCase()}</h1>
<h1>{$page.params.slug}</h1>
<a href="234">regexp route</a>

View File

@@ -0,0 +1,6 @@
<script>
import { stores } from '@sapper/app';
const { page } = stores();
</script>
<h1>Nested regexp page {$page.params.id}</h1>

View File

@@ -82,7 +82,7 @@ describe('basics', function() {
assert.equal(
await r.text('h1'),
'TEST-SLUG'
'test-slug'
);
});
@@ -316,6 +316,22 @@ describe('basics', function() {
assert.equal(await r.text('h1'), 'B page');
});
it('find regexp routes', async () => {
await r.load('/qwe');
await r.sapper.start();
assert.equal(await r.text('h1'), 'qwe');
await r.page.click('[href="234"]');
await r.wait();
assert.equal(await r.text('h1'), 'Regexp page 234');
await r.page.click('[href="regexp/234"]');
await r.wait();
assert.equal(await r.text('h1'), 'Nested regexp page 234');
});
it('runs server route handlers before page handlers, if they match', async () => {
const json = await get(`${r.base}/middleware`, {
headers: {

View File

@@ -95,16 +95,15 @@ describe('manifest_data', () => {
]);
});
// this test broken
// it('allows regex qualifiers', () => {
// const { pages } = create_manifest_data(path.join(__dirname, 'samples/qualifiers'));
//
// assert.deepEqual(pages.map(p => p.pattern), [
// /^\/([0-9-a-z]{3,})\/?$/,
// /^\/([a-z]{2})\/?$/,
// /^\/([^\/]+?)\/?$/
// ]);
// });
it('allows regex qualifiers', () => {
const { pages } = create_manifest_data(path.join(__dirname, 'samples/qualifiers'));
assert.deepEqual(pages.map(p => p.pattern), [
/^\/([0-9-a-z]{3,})\/?$/,
/^\/([a-z]{2})\/?$/,
/^\/([^\/]+?)\/?$/
]);
});
it('sorts routes correctly', () => {
const { pages } = create_manifest_data(path.join(__dirname, 'samples/sorting'));