Skip to content

Commit 7f84429

Browse files
committed
chore: refactor test
1 parent c5585b0 commit 7f84429

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+342
-353
lines changed

src/rules/infinite-reactive-loop.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ function isReactiveVariableNode(
118118

119119
return resolved.defs.some((def) => {
120120
return (
121-
(def as any).parent?.parent!.type === "SvelteScriptElement" &&
121+
(def as any).parent?.parent?.type === "SvelteScriptElement" &&
122122
def.name.type === "Identifier" &&
123123
def.name.name === node.name
124124
)
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
- message: Possibly it may occur an infinite reactive loop.
2-
line: 12
2+
line: 7
33
column: 5
44
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<script>
2+
let a = 0
3+
4+
$: (async () => {
5+
a = a + 1
6+
await doSomething()
7+
a = a + 1
8+
})()
9+
</script>

tests/fixtures/rules/infinite-reactive-loop/invalid/test04-input.svelte renamed to tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test02-input.svelte

+5
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,9 @@
1313
console.log(a)
1414
await doSomething()
1515
})()
16+
17+
$: (async () => {
18+
// should not report here
19+
await doSomething()
20+
})()
1621
</script>

tests/fixtures/rules/infinite-reactive-loop/invalid/test05-input.svelte renamed to tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test03-input.svelte

+5
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,9 @@
1212
console.log(a)
1313
await doSomething()
1414
})()
15+
16+
$: (async () => {
17+
// should not report here
18+
await doSomething()
19+
})()
1520
</script>

tests/fixtures/rules/infinite-reactive-loop/invalid/test08-input.svelte renamed to tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test04-input.svelte

+6
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,10 @@
1717
await doSomething()
1818
doSomething2()
1919
})()
20+
21+
$: (async () => {
22+
// should not report here
23+
await doSomething()
24+
doSomething2()
25+
})()
2026
</script>

tests/fixtures/rules/infinite-reactive-loop/invalid/test13-input.svelte renamed to tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test07-input.svelte

+6
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,10 @@
1010
await fetch()
1111
doSomething()
1212
})()
13+
14+
$: (async () => {
15+
// should not report here
16+
await fetch()
17+
doSomething()
18+
})()
1319
</script>

tests/fixtures/rules/infinite-reactive-loop/invalid/test15-errors.yaml renamed to tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test08-errors.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
- message: Possibly it may occur an infinite reactive loop.
2-
line: 7
2+
line: 6
33
column: 5
44
suggestions: null
55
- message: Possibly it may occur an infinite reactive loop because this function may update `foo`.
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<script>
2-
let obj = { a: 0 }
32
let foo = { obj: 1 }
43
54
const doSomething = async () => {
@@ -8,8 +7,10 @@
87
}
98
109
$: (async () => {
10+
const obj = { a: 0 }
1111
console.log(obj)
1212
await doSomething()
1313
foo.obj += 1
14+
obj.a = 1
1415
})()
1516
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- message: Possibly it may occur an infinite reactive loop.
2+
line: 9
3+
column: 30
4+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<script>
2+
let obj = { a: 0 }
3+
4+
const doSomething = (a, b) => {
5+
console.log({ a, b })
6+
}
7+
8+
$: (async () => {
9+
doSomething((await "a", (obj.a += 1)))
10+
})()
11+
</script>
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
- message: Possibly it may occur an infinite reactive loop.
2-
line: 7
2+
line: 6
33
column: 7
44
suggestions: null
55
- message: Possibly it may occur an infinite reactive loop.
6-
line: 10
6+
line: 7
77
column: 7
88
suggestions: null
99
- message: Possibly it may occur an infinite reactive loop.
10-
line: 13
10+
line: 11
1111
column: 7
1212
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<script>
2+
let a = 0
3+
4+
$: (() => {
5+
Promise.resolve().then(() => {
6+
a = a + 1
7+
a += 1
8+
})
9+
10+
Promise.resolve().catch(() => {
11+
a = a + 1
12+
})
13+
})()
14+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
- message: Possibly it may occur an infinite reactive loop.
2+
line: 10
3+
column: 9
4+
suggestions: null
5+
- message: Possibly it may occur an infinite reactive loop.
6+
line: 13
7+
column: 9
8+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<script>
2+
let a = 0
3+
4+
$: {
5+
a = a + 1
6+
new Promise((resolve, reject) => {
7+
/** do something */
8+
})
9+
.then(() => {
10+
a = a + 1
11+
})
12+
.catch(() => {
13+
a = a + 1
14+
})
15+
a = a + 1
16+
}
17+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
- message: Possibly it may occur an infinite reactive loop.
2+
line: 8
3+
column: 9
4+
suggestions: null
5+
- message: Possibly it may occur an infinite reactive loop.
6+
line: 11
7+
column: 9
8+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<script>
2+
let a = 0
3+
4+
$: (() => {
5+
a = a + 1
6+
Promise.all([])
7+
.then(() => {
8+
a = a + 1
9+
})
10+
.catch(() => {
11+
a = a + 1
12+
})
13+
a = a + 1
14+
})()
15+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- message: Possibly it may occur an infinite reactive loop.
2+
line: 7
3+
column: 5
4+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<script>
2+
let a = 0
3+
4+
$: (async () => {
5+
a = a + 1
6+
await Promise.resolve()
7+
a = a + 1
8+
})()
9+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
- message: Possibly it may occur an infinite reactive loop.
2+
line: 7
3+
column: 9
4+
suggestions: null
5+
- message: Possibly it may occur an infinite reactive loop.
6+
line: 10
7+
column: 9
8+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<script>
2+
let a = 0
3+
4+
$: (() => {
5+
Promise.resolve()
6+
.catch(() => {
7+
a = a + 1
8+
})
9+
.catch(() => {
10+
a = a + 1
11+
})
12+
})()
13+
</script>
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
- message: Possibly it may occur an infinite reactive loop.
2-
line: 12
3-
column: 24
2+
line: 7
3+
column: 9
44
suggestions: null
55
- message: Possibly it may occur an infinite reactive loop.
6-
line: 13
7-
column: 25
6+
line: 10
7+
column: 9
88
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<script>
2+
let a = 0
3+
4+
$: (() => {
5+
Promise.resolve()
6+
.catch(() => {
7+
a = a + 1
8+
})
9+
.then(() => {
10+
a = a + 1
11+
})
12+
})()
13+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
- message: Possibly it may occur an infinite reactive loop.
2+
line: 7
3+
column: 7
4+
suggestions: null
5+
- message: Possibly it may occur an infinite reactive loop.
6+
line: 13
7+
column: 7
8+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<script>
2+
const queueMicrotask2 = queueMicrotask
3+
let a = 0
4+
5+
$: {
6+
queueMicrotask(() => {
7+
a = a + 1
8+
})
9+
}
10+
11+
$: {
12+
queueMicrotask2(() => {
13+
a = a + 1
14+
})
15+
}
16+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
- message: Possibly it may occur an infinite reactive loop.
2+
line: 7
3+
column: 7
4+
suggestions: null
5+
- message: Possibly it may occur an infinite reactive loop.
6+
line: 13
7+
column: 7
8+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<script>
2+
const setInterval2 = setInterval
3+
let a = 0
4+
5+
$: {
6+
setInterval(() => {
7+
a = a + 1
8+
})
9+
}
10+
11+
$: {
12+
setInterval2(() => {
13+
a = a + 1
14+
})
15+
}
16+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
- message: Possibly it may occur an infinite reactive loop.
2+
line: 11
3+
column: 7
4+
suggestions: null
5+
- message: Possibly it may occur an infinite reactive loop.
6+
line: 17
7+
column: 7
8+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<script>
2+
const setTimeout2 = setTimeout
3+
let a = 0
4+
5+
function doSomething(fn) {
6+
fn()
7+
}
8+
9+
$: {
10+
setTimeout(() => {
11+
a = a + 1
12+
})
13+
}
14+
15+
$: {
16+
setTimeout2(() => {
17+
a = a + 1
18+
})
19+
20+
doSomething(() => {
21+
a = a + 1
22+
})
23+
}
24+
</script>

0 commit comments

Comments
 (0)