tangled
alpha
login
or
join now
yippee.fun
/
morphlex
0
fork
atom
Precise DOM morphing
morphing
typescript
dom
0
fork
atom
overview
issues
pulls
pipelines
Fix warnings
joel.drapper.me
4 months ago
f5c77eeb
ed1a9e55
+19
-8
4 changed files
expand all
collapse all
unified
split
test
morphlex-loops.test.ts
morphlex.test.ts
tsconfig.json
tsconfig.test.json
+1
-1
test/morphlex-loops.test.ts
···
1
1
import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
2
-
import { morph, morphInner } from "../src/morphlex";
2
2
+
import { morph } from "../src/morphlex";
3
3
4
4
describe("Morphlex - Infinite Loop Bug Detection", () => {
5
5
let container: HTMLElement;
+5
-5
test/morphlex.test.ts
···
281
281
let afterAddCalled = false;
282
282
283
283
morph(original, reference, {
284
284
-
beforeNodeAdded: (node) => {
284
284
+
beforeNodeAdded: () => {
285
285
beforeAddCalled = true;
286
286
return true;
287
287
},
288
288
-
afterNodeAdded: (node) => {
288
288
+
afterNodeAdded: () => {
289
289
afterAddCalled = true;
290
290
},
291
291
});
···
306
306
let afterRemoveCalled = false;
307
307
308
308
morph(original, reference, {
309
309
-
beforeNodeRemoved: (node) => {
309
309
+
beforeNodeRemoved: () => {
310
310
beforeRemoveCalled = true;
311
311
return true;
312
312
},
313
313
-
afterNodeRemoved: (node) => {
313
313
+
afterNodeRemoved: () => {
314
314
afterRemoveCalled = true;
315
315
},
316
316
});
···
328
328
let callbackCalled = false;
329
329
330
330
morph(original, reference, {
331
331
-
afterAttributeUpdated: (element, attrName, prevValue) => {
331
331
+
afterAttributeUpdated: (element, attrName) => {
332
332
if (attrName === "data-test") {
333
333
callbackCalled = true;
334
334
}
+3
-2
tsconfig.json
···
4
4
"module": "esnext",
5
5
"moduleResolution": "node",
6
6
"noUnusedLocals": true,
7
7
-
"rootDir": "src",
8
7
"strict": true,
9
8
"target": "es2022",
10
9
"removeComments": false,
···
15
14
"esModuleInterop": true,
16
15
"allowSyntheticDefaultImports": true,
17
16
"sourceMap": true
18
18
-
}
17
17
+
},
18
18
+
"include": ["src/**/*"],
19
19
+
"exclude": ["node_modules", "dist", "coverage", "test", "**/*.test.ts", "**/*.spec.ts", "vitest.config.ts"]
19
20
}
+10
tsconfig.test.json
···
1
1
+
{
2
2
+
"extends": "./tsconfig.json",
3
3
+
"compilerOptions": {
4
4
+
"rootDir": ".",
5
5
+
"noEmit": true,
6
6
+
"types": ["vitest/globals"]
7
7
+
},
8
8
+
"include": ["test/**/*", "vitest.config.ts", "src/**/*"],
9
9
+
"exclude": ["node_modules", "dist", "coverage"]
10
10
+
}