64 lines
1.8 KiB
JavaScript
64 lines
1.8 KiB
JavaScript
import { expect } from 'chai';
|
|
import * as cheerio from 'cheerio';
|
|
import { loadFixture } from './test-utils.js';
|
|
|
|
describe('Public dev with base', () => {
|
|
/** @type {import('./test-utils').Fixture} */
|
|
let fixture;
|
|
/** @type {import('./test-utils').DevServer} */
|
|
let devServer;
|
|
let $;
|
|
|
|
before(async () => {
|
|
fixture = await loadFixture({
|
|
root: './fixtures/public-base-404/',
|
|
site: 'http://example.com/',
|
|
base: '/blog',
|
|
});
|
|
devServer = await fixture.startDevServer();
|
|
});
|
|
|
|
it('200 when loading /@vite/client', async () => {
|
|
const response = await fixture.fetch('/@vite/client', {
|
|
redirect: 'manual',
|
|
});
|
|
expect(response.status).to.equal(200);
|
|
const content = await response.text();
|
|
expect(content).to.contain('vite');
|
|
});
|
|
|
|
it('200 when loading /blog/twitter.png', async () => {
|
|
const response = await fixture.fetch('/blog/twitter.png', {
|
|
redirect: 'manual',
|
|
});
|
|
expect(response.status).to.equal(200);
|
|
});
|
|
|
|
it('custom 404 page when loading /blog/blog/', async () => {
|
|
const response = await fixture.fetch('/blog/blog/');
|
|
const html = await response.text();
|
|
$ = cheerio.load(html);
|
|
expect($('h1').text()).to.equal('404');
|
|
});
|
|
|
|
it('default 404 hint page when loading /', async () => {
|
|
const response = await fixture.fetch('/');
|
|
expect(response.status).to.equal(404);
|
|
const html = await response.text();
|
|
$ = cheerio.load(html);
|
|
expect($('a').first().text()).to.equal('/blog/');
|
|
});
|
|
|
|
it('default 404 page when loading /none/', async () => {
|
|
const response = await fixture.fetch('/none/', {
|
|
headers: {
|
|
accept: 'text/html,*/*',
|
|
},
|
|
});
|
|
expect(response.status).to.equal(404);
|
|
const html = await response.text();
|
|
$ = cheerio.load(html);
|
|
expect($('h1').text()).to.equal('404: Not found');
|
|
expect($('pre').text()).to.equal('Path: /none/');
|
|
});
|
|
});
|