-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathregex values.spec.ts
88 lines (81 loc) · 2.04 KB
/
regex values.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import { describe, expect, it } from "vitest"
import { e, v } from "./utils.js"
import { condition, delim, variable } from "../src/ast/builders/index.js"
import { Parser } from "../src/Parser.js"
// more related tests are in ./property operators
it(`//`, () => {
const input = `//`
const ast = new Parser().parse(input)
const expected = condition(
variable(undefined, e(input, "/", [""]), delim("/", "/")),
)
expect(ast).to.deep.equal(expected)
})
it(`// - disabled`, () => {
const input = `//`
const ast = new Parser({
regexValues: false,
}).parse(input)
const expected = condition(
v(input, "//"),
)
expect(ast).to.deep.equal(expected)
})
it(`// - disabled alone`, () => {
const input = `//`
const ast = new Parser({
regexValues: prop => prop !== undefined,
}).parse(input)
const expected = condition(
v(input, "//"),
)
expect(ast).to.deep.equal(expected)
})
it(`//flags`, () => {
const input = `//flags`
const ast = new Parser().parse(input)
const expected = condition(
variable(undefined, e(input, "/", [""]), { ...delim("/", "/"), flags: "flags" }),
)
expect(ast).to.deep.equal(expected)
})
it(`/[/`, () => {
const input = `/[/`
const ast = new Parser().parse(input)
const expected = condition(
v(input, "[/", delim("/", false)),
)
expect(ast).to.deep.equal(expected)
})
it(`/]a[/]\\//`, () => {
const input = `/]a[/]\\//`
const ast = new Parser().parse(input)
const expected = condition(
v(input, "]a[/]\\/", delim("/", "/")),
)
expect(ast).to.deep.equal(expected)
})
it(`/\\/`, () => {
const input = `/\\/`
const ast = new Parser().parse(input)
const expected = condition(
v(input, "\\/", delim("/", false)),
)
expect(ast).to.deep.equal(expected)
})
it(`\\/\\/`, () => {
const input = `\\/\\/`
const ast = new Parser().parse(input)
const expected = condition(
v(input, "\\/\\/"),
)
expect(ast).to.deep.equal(expected)
})
it(`/bla/`, () => {
const input = `/bla/`
const ast = new Parser({ regexValues: false }).parse(input)
const expected = condition(
v(input, "/bla/"),
)
expect(ast).to.deep.equal(expected)
})