chore: migrate Node.js implementation for js-sandbox to isolated-vm (#3973)
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
import { describe, expect, test } from "vitest"
|
||||
|
||||
import { runPreRequestScript } from "~/node"
|
||||
|
||||
describe("runPreRequestScript", () => {
|
||||
test("returns the updated environment properly", () => {
|
||||
return expect(
|
||||
runPreRequestScript(
|
||||
`
|
||||
pw.env.set("bob", "newbob")
|
||||
`,
|
||||
{
|
||||
global: [],
|
||||
selected: [
|
||||
{ key: "bob", value: "oldbob", secret: false },
|
||||
{ key: "foo", value: "bar", secret: false },
|
||||
],
|
||||
}
|
||||
)()
|
||||
).resolves.toEqualRight({
|
||||
global: [],
|
||||
selected: [
|
||||
{ key: "bob", value: "newbob", secret: false },
|
||||
{ key: "foo", value: "bar", secret: false },
|
||||
],
|
||||
})
|
||||
})
|
||||
|
||||
test("fails if the key is not a string", () => {
|
||||
return expect(
|
||||
runPreRequestScript(
|
||||
`
|
||||
pw.env.set(10, "newbob")
|
||||
`,
|
||||
{
|
||||
global: [],
|
||||
selected: [
|
||||
{ key: "bob", value: "oldbob", secret: false },
|
||||
{ key: "foo", value: "bar", secret: false },
|
||||
],
|
||||
}
|
||||
)()
|
||||
).resolves.toBeLeft()
|
||||
})
|
||||
|
||||
test("fails if the value is not a string", () => {
|
||||
return expect(
|
||||
runPreRequestScript(
|
||||
`
|
||||
pw.env.set("bob", 10)
|
||||
`,
|
||||
{
|
||||
global: [],
|
||||
selected: [
|
||||
{ key: "bob", value: "oldbob", secret: false },
|
||||
{ key: "foo", value: "bar", secret: false },
|
||||
],
|
||||
}
|
||||
)()
|
||||
).resolves.toBeLeft()
|
||||
})
|
||||
|
||||
test("fails for invalid syntax", () => {
|
||||
return expect(
|
||||
runPreRequestScript(
|
||||
`
|
||||
pw.env.set("bob",
|
||||
`,
|
||||
{
|
||||
global: [],
|
||||
selected: [
|
||||
{ key: "bob", value: "oldbob", secret: false },
|
||||
{ key: "foo", value: "bar", secret: false },
|
||||
],
|
||||
}
|
||||
)()
|
||||
).resolves.toBeLeft()
|
||||
})
|
||||
|
||||
test("creates new env variable if doesn't exist", () => {
|
||||
return expect(
|
||||
runPreRequestScript(
|
||||
`
|
||||
pw.env.set("foo", "bar")
|
||||
`,
|
||||
{ selected: [], global: [] }
|
||||
)()
|
||||
).resolves.toEqualRight({
|
||||
global: [],
|
||||
selected: [{ key: "foo", value: "bar", secret: false }],
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user