From 4d10749d30047ddb6974acb7675db270a0638d98 Mon Sep 17 00:00:00 2001 From: David Worms Date: Thu, 15 Apr 2021 19:41:53 +0200 Subject: [PATCH] test: update sample execution --- test/samples.coffee | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/test/samples.coffee b/test/samples.coffee index 829de06..a5ddd22 100644 --- a/test/samples.coffee +++ b/test/samples.coffee @@ -1,15 +1,19 @@ fs = require('fs').promises -util = require 'util' path = require 'path' {exec} = require 'child_process' -each = require 'each' - -it 'samples', -> + +# `describe` label doesnt print because the code inside calling `it` is asynchronous. +# From Mocha.js doc +# https://mochajs.org/#dynamically-generating-tests +# With top-level await you can collect your test data in a dynamic and asynchronous way while the test file is being loaded + +describe 'Samples', -> + dir = path.resolve __dirname, '../samples' samples = await fs.readdir dir - return each samples.filter( (sample) -> /\.js$/.test sample) - .call (sample, callback) -> + for sample in samples + continue unless /\.js$/.test sample + it "Sample #{sample}", (callback) -> exec "node #{path.resolve dir, sample}", (err) -> callback err - .promise()