diff --git a/e2e/cases/server/serve-assets/index.test.ts b/e2e/cases/server/serve-assets/index.test.ts new file mode 100644 index 0000000000..109df11e07 --- /dev/null +++ b/e2e/cases/server/serve-assets/index.test.ts @@ -0,0 +1,18 @@ +import { expect, test } from '@e2e/helper'; + +test('should serve static files', async ({ request, dev }) => { + const rsbuild = await dev(); + const baseUrl = `http://127.0.0.1:${rsbuild.port}`; + const resText = await request.get(`${baseUrl}/foo.txt`); + expect(await resText.text()).toContain('bar'); + const resIndexJs = await request.get(`${baseUrl}/static/js/index.js`); + expect(await resIndexJs.text()).toContain('Hello Rsbuild!'); +}); + +test('should return 403 for path traversal', async ({ request, dev }) => { + const rsbuild = await dev(); + const baseUrl = `http://127.0.0.1:${rsbuild.port}`; + const res = await request.get(`${baseUrl}/..%2f../foo.txt`); + expect(res.status()).toEqual(403); + expect(await res.text()).toContain('Forbidden'); +}); diff --git a/e2e/cases/server/serve-assets/public/foo.txt b/e2e/cases/server/serve-assets/public/foo.txt new file mode 100644 index 0000000000..5716ca5987 --- /dev/null +++ b/e2e/cases/server/serve-assets/public/foo.txt @@ -0,0 +1 @@ +bar diff --git a/e2e/cases/server/serve-assets/src/index.js b/e2e/cases/server/serve-assets/src/index.js new file mode 100644 index 0000000000..03a16d74b4 --- /dev/null +++ b/e2e/cases/server/serve-assets/src/index.js @@ -0,0 +1 @@ +console.log('Hello Rsbuild!');