mirror of
https://github.com/vitejs/vite.git
synced 2024-11-21 22:59:10 +00:00
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import fetch from 'node-fetch'
|
|
import { describe, expect, test } from 'vitest'
|
|
import { port } from './serve'
|
|
import { page } from '~utils'
|
|
|
|
const url = `http://localhost:${port}`
|
|
|
|
describe('injected inline scripts', () => {
|
|
test('no injected inline scripts are present', async () => {
|
|
await page.goto(url)
|
|
const inlineScripts = await page.$$eval('script', (nodes) =>
|
|
nodes.filter((n) => !n.getAttribute('src') && n.innerHTML),
|
|
)
|
|
expect(inlineScripts).toHaveLength(0)
|
|
})
|
|
|
|
test('injected script proxied correctly', async () => {
|
|
await page.goto(url)
|
|
const proxiedScripts = await page.$$eval('script', (nodes) =>
|
|
nodes
|
|
.filter((n) => {
|
|
const src = n.getAttribute('src')
|
|
if (!src) return false
|
|
return src.includes('?html-proxy&index')
|
|
})
|
|
.map((n) => n.getAttribute('src')),
|
|
)
|
|
|
|
// assert at least 1 proxied script exists
|
|
expect(proxiedScripts).not.toHaveLength(0)
|
|
|
|
const scriptContents = await Promise.all(
|
|
proxiedScripts.map((src) => fetch(url + src).then((res) => res.text())),
|
|
)
|
|
|
|
// all proxied scripts return code
|
|
for (const code of scriptContents) {
|
|
expect(code).toBeTruthy()
|
|
}
|
|
})
|
|
})
|