diff options
author | 2021-04-05 14:18:09 -0400 | |
---|---|---|
committer | 2021-04-05 14:18:09 -0400 | |
commit | c9bc6ffef7be0e068acb1b36475c4ab3d12fd5d5 (patch) | |
tree | d444fa26d0ce47bb3cebb5e6264d67778a2e106d /test/astro-search.test.js | |
parent | d9733e8d42662d8708b5fc3bcb5c6c4db75df043 (diff) | |
download | astro-c9bc6ffef7be0e068acb1b36475c4ab3d12fd5d5.tar.gz astro-c9bc6ffef7be0e068acb1b36475c4ab3d12fd5d5.tar.zst astro-c9bc6ffef7be0e068acb1b36475c4ab3d12fd5d5.zip |
Improve searching for pages (#60)
This improves the algorithm for searching for pages. It now works like:
1. If pathname ends with /
1. Look for PATHNAME/index.astro
1. Look for PATHNAME/index.md
1. else
1. Look for PATHNAME.astro
1. Look for PATHNAME.md
1. Look for PATHNAME/index.astro
1. 301
1. Look for PATHNAME/index.md
1. 301
1. 404
Diffstat (limited to 'test/astro-search.test.js')
-rw-r--r-- | test/astro-search.test.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/astro-search.test.js b/test/astro-search.test.js new file mode 100644 index 000000000..415bc4432 --- /dev/null +++ b/test/astro-search.test.js @@ -0,0 +1,41 @@ +import { suite } from 'uvu'; +import * as assert from 'uvu/assert'; +import { setup } from './helpers.js'; + +const Search = suite('Search paths'); + +setup(Search, './fixtures/astro-basic'); + +Search('Finds the root page', async ({ runtime }) => { + const result = await runtime.load('/'); + assert.equal(result.statusCode, 200); +}); + +Search('Matches pathname to filename', async ({ runtime }) => { + const result = await runtime.load('/news'); + assert.equal(result.statusCode, 200); +}); + +Search('A URL with a trailing slash can match a folder with an index.astro', async ({ runtime }) => { + const result = await runtime.load('/nested-astro/'); + assert.equal(result.statusCode, 200); +}); + +Search('A URL with a trailing slash can match a folder with an index.md', async ({ runtime }) => { + const result = await runtime.load('/nested-md/'); + assert.equal(result.statusCode, 200); +}); + +Search('A URL without a trailing slash can redirect to a folder with an index.astro', async ({ runtime }) => { + const result = await runtime.load('/nested-astro'); + assert.equal(result.statusCode, 301); + assert.equal(result.location, '/nested-astro/'); +}); + +Search('A URL without a trailing slash can redirect to a folder with an index.md', async ({ runtime }) => { + const result = await runtime.load('/nested-md'); + assert.equal(result.statusCode, 301); + assert.equal(result.location, '/nested-md/'); +}); + +Search.run(); |