/
githubmirror
/
next.js
Обзор
Документация
Войти
/
githubmirror
/
next.js
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
canary
test/development/basic/misc.test.ts
75 строк
2 KB
Tim Neutkens
test: migrate webdriver callers to next.browser (#93941)
22 май 2026, 15:01
Не верифицирован
22 май 2026, 15:01
e860cec
Код
Авторство
О чём код?
import { join } from 'path' import { FileRef, nextTestSetup } from 'e2e-utils' import { fetchViaHTTP, renderViaHTTP } from 'next-test-utils' describe.each([[''], ['/docs']])( 'misc basic dev tests, basePath: %p', (basePath: string) => { const { next } = nextTestSetup({ files: { pages: new FileRef(join(__dirname, 'misc/pages')), public: new FileRef(join(__dirname, 'misc/public')), }, nextConfig: { basePath, }, }) it('should set process.env.NODE_ENV in development', async () => { const browser = await next.browser(basePath + '/process-env') const nodeEnv = await browser.elementByCss('#node-env').text() expect(nodeEnv).toBe('development') await browser.close() }) it('should allow access to public files', async () => { const data = await renderViaHTTP(next.url, basePath + '/data/data.txt') expect(data).toBe('data') const legacy = await renderViaHTTP( next.url, basePath + '/static/legacy.txt' ) expect(legacy).toMatch(`new static folder`) }) describe('With Security Related Issues', () => { it('should not allow accessing files outside .next/static and .next/server directory', async () => { const pathsToCheck = [ basePath + '/_next/static/../BUILD_ID', basePath + '/_next/static/../routes-manifest.json', ] for (const path of pathsToCheck) { const res = await fetchViaHTTP(next.url, path) const text = await res.text() try { expect(res.status).toBe(404) expect(text).toMatch(/This page could not be found/) } catch (err) { throw new Error(`Path ${path} accessible from the browser`) } } }) it('should handle encoded / value for trailing slash correctly', async () => { const res = await fetchViaHTTP( next.url, basePath + '/%2fexample.com/', undefined, { redirect: 'manual', } ) const { pathname, hostname } = new URL( res.headers.get('location') || '' ) expect(res.status).toBe(308) expect(pathname).toBe(basePath + '/%2fexample.com') expect(hostname).not.toBe('example.com') const text = await res.text() expect(text).toEqual(basePath + '/%2fexample.com') }) }) } )