mirror of
https://github.com/withastro/astro.git
synced 2024-12-23 21:53:55 -05:00
d6edc75408
* quality of life updates for `App` (#9579) * feat(app): writeResponse for node-based adapters * add changeset * Apply suggestions from code review Co-authored-by: Emanuele Stoppa <my.burning@gmail.com> * Apply suggestions from code review Co-authored-by: Emanuele Stoppa <my.burning@gmail.com> * add examples for NodeApp static methods * unexpose createOutgoingHttpHeaders from public api * move headers test to core * clientAddress test * cookies test * destructure renderOptions right at the start --------- Co-authored-by: Emanuele Stoppa <my.burning@gmail.com> * Fallback node standalone to localhost (#9545) * Fallback node standalone to localhost * Update .changeset/tame-squids-film.md * quality of life updates for the node adapter (#9582) * descriptive names for files and functions * update tests * add changeset * appease linter * Apply suggestions from code review Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com> * `server-entrypoint.js` -> `server.js` * prevent crash on stream error (from PR 9533) * Apply suggestions from code review Co-authored-by: Luiz Ferraz <luiz@lferraz.com> * `127.0.0.1` -> `localhost` * add changeset for fryuni's fix * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: Emanuele Stoppa <my.burning@gmail.com> --------- Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com> Co-authored-by: Luiz Ferraz <luiz@lferraz.com> Co-authored-by: Emanuele Stoppa <my.burning@gmail.com> * chore(vercel): delete request response conversion logic (#9583) * refactor * add changeset * bump peer dependencies * unexpose symbols (#9683) * Update .changeset/tame-squids-film.md Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> --------- Co-authored-by: Arsh <69170106+lilnasy@users.noreply.github.com> Co-authored-by: Bjorn Lu <bjornlu.dev@gmail.com> Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com> Co-authored-by: Luiz Ferraz <luiz@lferraz.com> Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
import { expect } from 'chai';
|
|
import nodejs from '../dist/index.js';
|
|
import { loadFixture } from './test-utils.js';
|
|
|
|
describe('Bad URLs', () => {
|
|
/** @type {import('./test-utils').Fixture} */
|
|
let fixture;
|
|
let devPreview;
|
|
|
|
before(async () => {
|
|
fixture = await loadFixture({
|
|
root: './fixtures/bad-urls/',
|
|
output: 'server',
|
|
adapter: nodejs({ mode: 'standalone' }),
|
|
});
|
|
await fixture.build();
|
|
devPreview = await fixture.preview();
|
|
});
|
|
|
|
after(async () => {
|
|
await devPreview.stop();
|
|
});
|
|
|
|
it('Does not crash on bad urls', async () => {
|
|
const weirdURLs = [
|
|
'/\\xfs.bxss.me%3Fastrojs.com/hello-world',
|
|
'/asdasdasd@ax_zX=.zxczas🐥%/úadasd000%/',
|
|
'%',
|
|
'%80',
|
|
'%c',
|
|
'%c0%80',
|
|
'%20foobar%',
|
|
];
|
|
|
|
for (const weirdUrl of weirdURLs) {
|
|
const fetchResult = await fixture.fetch(weirdUrl);
|
|
expect([400, 404, 500]).to.include(
|
|
fetchResult.status,
|
|
`${weirdUrl} returned something else than 400, 404, or 500`
|
|
);
|
|
}
|
|
const stillWork = await fixture.fetch('/');
|
|
const text = await stillWork.text();
|
|
expect(text).to.equal('<!DOCTYPE html>Hello!');
|
|
});
|
|
});
|