Open shawnbot opened 7 years ago
👍 to the approach. I'm looking at something similar as a smoke test for components. I'll share the branch once i've got it up to date.
Running all the Fractal component variants through our transpilation process (which is meta-template
plus some other bits) and asserting the output for the transpiled versions is the same for the original nunjucks.
Only question i've got is, would output.txt
be commited? For my version i was thinking the reference output would be generated from the pre-meta-template
nunjucks template. Where that would only change with breaking change in the nunjucks engine itself.
Thanks for the gut check. Some things I've reconsidered:
bin
don't need to be sh/bash scripts; they can just nix the file extension and tell the shell what they run in the shebang, e.g. bin/nunjucks
has #!/usr/bin/env node
, and bin/erb
gets #!/usr/bin/env ruby
.output.txt
is ambiguous, and I would call these expected.txt
and commit them.child_process.spawn()
stdio magic).
The simplest thing here would probably be to have a script that runs a standard set of converted templates (the feature lower common denominator) through a reference implementation of the target engine (ideally a shell one-liner) to ensure that we get the expected output. For instance, we might test the Handlebars conversion with a this, which we might call
handlebars
:which the testing script could call with a
diff.sh
that looks something like:which you'd call with:
(or do it in Node.) The layout might look like:
@dsingleton, do you have any thoughts on this?