-
-
Notifications
You must be signed in to change notification settings - Fork 160
/
themes.spec.ts
41 lines (35 loc) · 1.77 KB
/
themes.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { expect, ifExitCodeIsOtherThan, logOutput, Pick, SpawnResult } from '@integration/testing-tools';
import { SceneTagged } from '@serenity-js/core/lib/events';
import { CapabilityTag, FeatureTag, ThemeTag } from '@serenity-js/core/lib/model';
import 'mocha';
import { given } from 'mocha-testdata';
import { CucumberRunner, cucumberVersions } from '../src';
describe('@serenity-js/cucumber', function() {
this.timeout(5000);
given([
...cucumberVersions(1, 2)
.thatRequires(
'node_modules/@serenity-js/cucumber/register.js',
'lib/support/configure_serenity.js',
)
.withStepDefsIn('promise', 'callback', 'synchronous')
.toRun('features/example_theme/example_capability/example.feature'),
...cucumberVersions(3, 4, 5)
.thatRequires('lib/support/configure_serenity.js')
.withStepDefsIn('synchronous', 'promise', 'callback')
.withArgs(
'--format', 'node_modules/@serenity-js/cucumber/register.js',
)
.toRun('features/example_theme/example_capability/example.feature'),
]).
it('recognises directories that group capabilities as themes', (runner: CucumberRunner) => runner.run().
then(ifExitCodeIsOtherThan(0, logOutput)).
then(res => {
expect(res.exitCode).to.equal(0);
Pick.from(res.events)
.next(SceneTagged, event => expect(event.tag).to.equal(new ThemeTag('example theme')))
.next(SceneTagged, event => expect(event.tag).to.equal(new CapabilityTag('example capability')))
.next(SceneTagged, event => expect(event.tag).to.equal(new FeatureTag('Serenity/JS recognises capabilities and themes')))
;
}));
});