summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fable-arch.md76
-rw-r--r--fable-arch.yaml2
2 files changed, 49 insertions, 29 deletions
diff --git a/fable-arch.md b/fable-arch.md
index 5e34aaa..785f468 100644
--- a/fable-arch.md
+++ b/fable-arch.md
@@ -357,37 +357,57 @@ other resource constraints.
# Acceptance tests for Fable {#acceptance}
-FIXME: This needs to be written eventually, when Fable is implemented.
-
-## Simple scenario
-
-We test that Fable can execute a very simple scenario. The test is
-based on generating the test program from an input file, running the
-test program, and examining the log file. This will require that the
-generated test program logs the things it does in a known format.
-Effectively, the log messages become a part of the contract.
-
-````fable
-given file "simple.md" containing
- # Simple
- ```fable
- given precondition foo
- when I do bar
- then bar was done
- ```
-and file "simple.yaml" containing
- - given: precondition foo
- function: nop
- - when: I do bar
- function: nop
- - then: bar was done
- function: nop
-and file "simple.py" containing
- def foo(ctx): pass
+## The simplest possible scenario
+
+This tests that Fable can run a simplest possible scenario
+successfully. The test is based on generating the test program from an
+input file, running the test program, and examining the log file.
+
+```fable
+given files simple.md, simple.yaml, and simple.py
when I run ftt-codegen --run simple.md
then log file says scenario "Simple" was run
and log file says step "given precondition foo" was run
and log file says step "when I do bar" was run
and log file says step "then bar was don" was run
and program finished successfully
-````
+```
+
+### simple.md—markdown file
+
+~~~~{#simple.md}
+# Simple
+This is the simplest possible test scenario
+
+```fable
+given precondition foo
+when I do bar
+then bar was done
+```
+~~~~
+
+### simple.yaml—bindings file
+
+```{#simple.yaml}
+- given: precondition foo
+ function: precond
+- when: I do bar
+ function: do
+- then: bar was done
+ function: was_done
+```
+
+### simple.py—Python file with functions
+
+```{#simple.py}
+def precond(ctx):
+ pass
+def do(ctx):
+ pass
+def was_done(ctx):
+ pass
+```
+
+## Two scenarios in the same markdown file
+## A scenario step fails
+##
diff --git a/fable-arch.yaml b/fable-arch.yaml
index fb563d2..5dc8278 100644
--- a/fable-arch.yaml
+++ b/fable-arch.yaml
@@ -1,4 +1,4 @@
-- given: file "(?P<filename>\S+)"" containing (?P<content>.*)
+- given: files (?P<md>\S+), (?P<yaml>\S+), and (?P<py>\S+)
- when: I run ftt-codegen --run (?P<filename>\S+)
- then: log file says scenario "(?P<name>.+)" was run
- then: log file says step "(?P<keyword>given|when|then) (?P<name>.+)" was run