const assert = require('assert').strict; const {test} = require('./run.js'); const wait = (time = 1000) => new Promise(resolve => setTimeout(() => resolve(), time)); test(`some failing test`, t => { assert.deepEqual([1, 2, 3], [1, 2, 4], `array should be equivalent`); }); test(`some nested test`, t => { t.test(`inside`, () => { assert.deepEqual({foo: 'bar'}, {foo: 'bar'}, `should match`); }); t.test(`failing inside`, () => { assert.ok(false, `oh noooo`); }); }); test(`some async test that shows concurrency`, async t => { let foo = 'bar'; t.test(`nested async`, async t => { await wait(100); assert.equal(foo, 'baz', 'see changed value although started before'); foo = 'whatever'; }); t.test(`change foo faster`, t => { assert.equal(foo, 'bar'); foo = 'baz'; }); }); test(`some serial test`, async t => { let foo = 'bar'; await t.test('nested inside', async t => { await wait(100); assert.equal(foo, 'bar', 'see the initial value of foo'); foo = 'whatever'; }); t.test('run only once "nested inside" has finished', () => { assert.equal(foo, 'whatever', 'see the changed value'); }); });