Skip to content

Commit 9247fe0

Browse files
committed
cover als disable, exit
1 parent cab5a43 commit 9247fe0

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

test.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
div,
2424
diseSet,
2525
DiNotInitializedError,
26+
DependencyNotRegisteredError,
2627
} from './index.js'
2728
import EventEmitter from 'node:events'
2829
import { setImmediate } from 'node:timers'
@@ -590,3 +591,39 @@ test('div', () => {
590591
assert.strictEqual(n(), 10)
591592
})
592593
})
594+
595+
test('als disable throws diInit not registered', () => {
596+
const obj = { test: true }
597+
diInit(() => {
598+
diSet('obj', obj)
599+
als.disable()
600+
assert.throws(() => diDep('obj'), DiNotInitializedError)
601+
})
602+
})
603+
604+
test('als disable inside setImmediate also throws diInit not registered', async () => {
605+
const obj = { test: true }
606+
diInit(async () => {
607+
diSet('obj', obj)
608+
setImmediate(() => als.disable())
609+
await setTimeoutP(10)
610+
assert.throws(() => diDep('obj'), DiNotInitializedError)
611+
})
612+
})
613+
614+
test('reinit inside als exit', () => {
615+
diInit(() => {
616+
diSet('outer', true)
617+
assert.strictEqual(diExists(), true)
618+
assert.strictEqual(diDep('outer'), true)
619+
als.exit(() => {
620+
assert.strictEqual(diExists(), false)
621+
diInit(() => {
622+
diSet('inner', true)
623+
assert.strictEqual(diExists(), true)
624+
assert.strictEqual(diDep('inner'), true)
625+
assert.throws(() => diDep('outer'), DependencyNotRegisteredError)
626+
})
627+
})
628+
})
629+
})

0 commit comments

Comments
 (0)