]> git.codecow.com Git - libnemo.git/commitdiff
Reorganize test globals.
authorChris Duncan <chris@zoso.dev>
Fri, 18 Jul 2025 21:45:20 +0000 (14:45 -0700)
committerChris Duncan <chris@zoso.dev>
Fri, 18 Jul 2025 21:45:20 +0000 (14:45 -0700)
test/GLOBALS.mjs

index 10f5caed1c7b4bea23f23548e0375dc7987d35cb..10dfd1d9bb31535f43261392d2d21a11a75b6fa6 100644 (file)
@@ -24,6 +24,17 @@ export { process }
 
 export const isNode = process.versions?.node != null
 
+export const failures = []
+export const passes = []
+function fail (err) {
+       failures.push(err.message)
+       console.error(`%cFAIL `, 'color:red', err.message, err.cause)
+}
+function pass (name) {
+       passes.push(name)
+       console.log(`%cPASS `, 'color:green', name)
+}
+
 export async function click (text, fn) {
        return new Promise((resolve, rejects) => {
                const button = document.createElement('button')
@@ -103,52 +114,6 @@ export function stats (times) {
        }
 }
 
-export const failures = []
-export const passes = []
-function fail (err) {
-       failures.push(err.message)
-       console.error(`%cFAIL `, 'color:red', err.message, err.cause)
-}
-function pass (name) {
-       passes.push(name)
-       console.log(`%cPASS `, 'color:green', name)
-}
-
-await suite('TEST RUNNER CHECK', { collapse: true }, async () => {
-       await new Promise(r => setTimeout(r, 0))
-
-       console.assert(failures.length === 0)
-       console.assert(passes.length === 0)
-
-       await test('promise should pass', new Promise(resolve => { resolve('') }))
-       console.assert(failures.some(call => /.*promise should pass.*/.test(call[0])) === false, `good promise errored`)
-       console.assert(passes.some(call => /.*promise should pass.*/.test(call)) === true, `good promise not logged`)
-
-       await test('promise should fail', new Promise((resolve, reject) => { reject('FAILURE EXPECTED HERE') }))
-       console.assert(failures.some(call => /.*promise should fail.*/.test(call)) === true, `bad promise not errored`)
-       console.assert(passes.some(call => /.*promise should fail.*/.test(call)) === false, 'bad promise logged')
-
-       await test('async should pass', async () => {})
-       console.assert(failures.some(call => /.*async should pass.*/.test(call)) === false, 'good async errored')
-       console.assert(passes.some(call => /.*async should pass.*/.test(call)) === true, 'good async not logged')
-
-       await test('async should fail', async () => { throw new Error('FAILURE EXPECTED HERE') })
-       console.assert(failures.some(call => /.*async should fail.*/.test(call)) === true, 'bad async not errored')
-       console.assert(passes.some(call => /.*async should fail.*/.test(call)) === false, 'bad async logged')
-
-       await test('function should pass', () => {})
-       console.assert(failures.some(call => /.*function should pass.*/.test(call)) === false, 'good function errored')
-       console.assert(passes.some(call => /.*function should pass.*/.test(call)) === true, 'good function not logged')
-
-       await test('function should fail', 'FAILURE EXPECTED HERE')
-       console.assert(failures.some(call => /.*function should fail.*/.test(call)) === true, 'bad function not errored')
-       console.assert(passes.some(call => /.*function should fail.*/.test(call)) === false, 'bad function logged')
-
-       failures.splice(0)
-       passes.splice(0)
-})
-console.log(`%cTEST RUNNER CHECK DONE`, 'font-weight:bold')
-
 export function suite (name, opts, fn) {
        if (fn === undefined) fn = opts
        return queue.add(async () => {
@@ -275,3 +240,38 @@ export const assert = {
                }
        }
 }
+
+await suite('TEST RUNNER CHECK', { collapse: true }, async () => {
+       await new Promise(r => setTimeout(r, 0))
+
+       console.assert(failures.length === 0)
+       console.assert(passes.length === 0)
+
+       await test('promise should pass', new Promise(resolve => { resolve('') }))
+       console.assert(failures.some(call => /.*promise should pass.*/.test(call[0])) === false, `good promise errored`)
+       console.assert(passes.some(call => /.*promise should pass.*/.test(call)) === true, `good promise not logged`)
+
+       await test('promise should fail', new Promise((resolve, reject) => { reject('FAILURE EXPECTED HERE') }))
+       console.assert(failures.some(call => /.*promise should fail.*/.test(call)) === true, `bad promise not errored`)
+       console.assert(passes.some(call => /.*promise should fail.*/.test(call)) === false, 'bad promise logged')
+
+       await test('async should pass', async () => {})
+       console.assert(failures.some(call => /.*async should pass.*/.test(call)) === false, 'good async errored')
+       console.assert(passes.some(call => /.*async should pass.*/.test(call)) === true, 'good async not logged')
+
+       await test('async should fail', async () => { throw new Error('FAILURE EXPECTED HERE') })
+       console.assert(failures.some(call => /.*async should fail.*/.test(call)) === true, 'bad async not errored')
+       console.assert(passes.some(call => /.*async should fail.*/.test(call)) === false, 'bad async logged')
+
+       await test('function should pass', () => {})
+       console.assert(failures.some(call => /.*function should pass.*/.test(call)) === false, 'good function errored')
+       console.assert(passes.some(call => /.*function should pass.*/.test(call)) === true, 'good function not logged')
+
+       await test('function should fail', 'FAILURE EXPECTED HERE')
+       console.assert(failures.some(call => /.*function should fail.*/.test(call)) === true, 'bad function not errored')
+       console.assert(passes.some(call => /.*function should fail.*/.test(call)) === false, 'bad function logged')
+
+       failures.splice(0)
+       passes.splice(0)
+})
+console.log(`%cTEST RUNNER CHECK DONE`, 'font-weight:bold')