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
import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
-
import { morph, morphInner } from "../src/morphlex";
3
4
describe("Morphlex - Infinite Loop Bug Detection", () => {
5
let container: HTMLElement;
···
1
import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
+
import { morph } from "../src/morphlex";
3
4
describe("Morphlex - Infinite Loop Bug Detection", () => {
5
let container: HTMLElement;
+5
-5
test/morphlex.test.ts
···
281
let afterAddCalled = false;
282
283
morph(original, reference, {
284
-
beforeNodeAdded: (node) => {
285
beforeAddCalled = true;
286
return true;
287
},
288
-
afterNodeAdded: (node) => {
289
afterAddCalled = true;
290
},
291
});
···
306
let afterRemoveCalled = false;
307
308
morph(original, reference, {
309
-
beforeNodeRemoved: (node) => {
310
beforeRemoveCalled = true;
311
return true;
312
},
313
-
afterNodeRemoved: (node) => {
314
afterRemoveCalled = true;
315
},
316
});
···
328
let callbackCalled = false;
329
330
morph(original, reference, {
331
-
afterAttributeUpdated: (element, attrName, prevValue) => {
332
if (attrName === "data-test") {
333
callbackCalled = true;
334
}
···
281
let afterAddCalled = false;
282
283
morph(original, reference, {
284
+
beforeNodeAdded: () => {
285
beforeAddCalled = true;
286
return true;
287
},
288
+
afterNodeAdded: () => {
289
afterAddCalled = true;
290
},
291
});
···
306
let afterRemoveCalled = false;
307
308
morph(original, reference, {
309
+
beforeNodeRemoved: () => {
310
beforeRemoveCalled = true;
311
return true;
312
},
313
+
afterNodeRemoved: () => {
314
afterRemoveCalled = true;
315
},
316
});
···
328
let callbackCalled = false;
329
330
morph(original, reference, {
331
+
afterAttributeUpdated: (element, attrName) => {
332
if (attrName === "data-test") {
333
callbackCalled = true;
334
}
+3
-2
tsconfig.json
···
4
"module": "esnext",
5
"moduleResolution": "node",
6
"noUnusedLocals": true,
7
-
"rootDir": "src",
8
"strict": true,
9
"target": "es2022",
10
"removeComments": false,
···
15
"esModuleInterop": true,
16
"allowSyntheticDefaultImports": true,
17
"sourceMap": true
18
-
}
0
0
19
}
···
4
"module": "esnext",
5
"moduleResolution": "node",
6
"noUnusedLocals": true,
0
7
"strict": true,
8
"target": "es2022",
9
"removeComments": false,
···
14
"esModuleInterop": true,
15
"allowSyntheticDefaultImports": true,
16
"sourceMap": true
17
+
},
18
+
"include": ["src/**/*"],
19
+
"exclude": ["node_modules", "dist", "coverage", "test", "**/*.test.ts", "**/*.spec.ts", "vitest.config.ts"]
20
}
+10
tsconfig.test.json
···
0
0
0
0
0
0
0
0
0
0
···
1
+
{
2
+
"extends": "./tsconfig.json",
3
+
"compilerOptions": {
4
+
"rootDir": ".",
5
+
"noEmit": true,
6
+
"types": ["vitest/globals"]
7
+
},
8
+
"include": ["test/**/*", "vitest.config.ts", "src/**/*"],
9
+
"exclude": ["node_modules", "dist", "coverage"]
10
+
}