/
require-array-join-separator.mjs
77 lines (75 loc) · 1.47 KB
/
require-array-join-separator.mjs
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
import outdent from 'outdent';
import {getTester} from './utils/test.mjs';
const {test} = getTester(import.meta);
test.snapshot({
valid: [
'foo.join(",")',
'join()',
'foo.join(...[])',
'foo.join?.()',
'foo?.join?.()',
'foo[join]()',
'foo["join"]()',
'[].join.call(foo, ",")',
'[].join.call()',
'[].join.call(...[foo])',
'[].join?.call(foo)',
'[]?.join.call(foo)',
'[].join[call](foo)',
'[][join].call(foo)',
'[,].join.call(foo)',
'[].join.notCall(foo)',
'[].notJoin.call(foo)',
'Array.prototype.join.call(foo, "")',
'Array.prototype.join.call()',
'Array.prototype.join.call(...[foo])',
'Array.prototype.join?.call(foo)',
'Array.prototype?.join.call(foo)',
'Array?.prototype.join.call(foo)',
'Array.prototype.join[call](foo, "")',
'Array.prototype[join].call(foo)',
'Array[prototype].join.call(foo)',
'Array.prototype.join.notCall(foo)',
'Array.prototype.notJoin.call(foo)',
'Array.notPrototype.join.call(foo)',
'NotArray.prototype.join.call(foo)',
'path.join(__dirname, "./foo.js")',
],
invalid: [
'foo.join()',
'[].join.call(foo)',
'[].join.call(foo,)',
'[].join.call(foo , );',
'Array.prototype.join.call(foo)',
'Array.prototype.join.call(foo, )',
outdent`
(
/**/
[
/**/
]
/**/
.
/**/
join
/**/
.
/**/
call
/**/
(
/**/
(
/**/
foo
/**/
)
/**/
,
/**/
)/**/
)
`,
'foo?.join()',
],
});