import { expect, tap } from 'tapbundle' import * as smartcls from '../ts/index' import * as smartstring from 'smartstring' smartcls.createNamespace('myspace') let testNamespace = smartcls.getNamespace('myspace') tap.testParallel('should get namespace', async (tools) => { testNamespace.run(async () => { testNamespace.set('some', 'anything') await tools.delayFor(1000) expect(testNamespace.get('some')).to.equal('anything') tools.delayFor(200).then(() => { expect(testNamespace.get('some')).to.equal('anything') }) }) }) tap.testParallel('should get namespace with other values', async (tools) => { testNamespace.run(async () => { testNamespace.set('some', 'otherthing') await tools.delayFor(500) expect(testNamespace.get('some')).to.equal('otherthing') tools.delayFor(200).then(() => { expect(testNamespace.get('some')).to.equal('otherthing') }) }) }) tap.test('should not expose memory leak', async (tools) => { let testArray = [] await tools.checkIterationLeak(async () => { testNamespace.run(async () => { let randomLargeString = smartstring.create.createRandomString('*', 10000, {}) // testArray.push(randomLargeString) // trigger memory leak testNamespace.set('some', randomLargeString ) await tools.delayFor(10) expect(testNamespace.get('some')).to.equal(randomLargeString) tools.delayFor(10).then(() => { expect(testNamespace.get('some')).to.equal(randomLargeString) }) }) }) }) tap.start()