Skip to content

Commit 95800a3

Browse files
committed
Merge branch '3.x' into task-4806-bump-cucumber/messages-to-27.1.0
2 parents 6301b00 + 236dc72 commit 95800a3

File tree

22 files changed

+213
-54
lines changed

22 files changed

+213
-54
lines changed

lib/container.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,18 +162,18 @@ class Container {
162162
* @param {Object<string, *>} newSupport
163163
* @param {Object<string, *>} newPlugins
164164
*/
165-
static clear(newHelpers, newSupport, newPlugins) {
166-
container.helpers = newHelpers || {}
165+
static clear(newHelpers = {}, newSupport = {}, newPlugins = {}) {
166+
container.helpers = newHelpers
167167
container.translation = loadTranslation()
168-
container.proxySupport = createSupportObjects(newSupport || {})
169-
container.plugins = newPlugins || {}
168+
container.proxySupport = createSupportObjects(newSupport)
169+
container.plugins = newPlugins
170170
asyncHelperPromise = Promise.resolve()
171171
store.actor = null
172172
debug('container cleared')
173173
}
174174

175175
/**
176-
* @param {Function} fn
176+
* @param {Function|null} fn
177177
* @returns {Promise<void>}
178178
*/
179179
static async started(fn = null) {

lib/mocha/gherkin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ module.exports = (text, file) => {
107107
)
108108
continue
109109
}
110-
if (child.scenario && (currentLanguage ? child.scenario.keyword === currentLanguage.contexts.ScenarioOutline : child.scenario.keyword === 'Scenario Outline')) {
110+
if (child.scenario && (currentLanguage ? currentLanguage.contexts.ScenarioOutline.includes(child.scenario.keyword) : child.scenario.keyword === 'Scenario Outline')) {
111111
for (const examples of child.scenario.examples) {
112112
const fields = examples.tableHeader.cells.map(c => c.value)
113113
for (const example of examples.tableBody) {

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@
9494
"figures": "3.2.0",
9595
"fn-args": "4.0.0",
9696
"fs-extra": "11.3.0",
97-
"fs-extra": "11.2.0",
9897
"glob": "^11.0.1",
9998
"fuse.js": "^7.0.0",
10099
"html-minifier-terser": "7.2.0",
Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
Caratteristica('DevTo');
1+
Funzionalità('DevTo')
22

33
Prima(() => {
4-
console.log('Before');
5-
});
4+
console.log('Before')
5+
})
66

7-
lo_scenario('Simple translation test', () => {
8-
console.log('Simple test');
9-
});
7+
Esempio('Simple translation test', () => {
8+
console.log('Simple test')
9+
})
1010

1111
Scenario('Simple translation test 2', () => {
12-
console.log('Simple test 2');
13-
});
12+
console.log('Simple test 2')
13+
})
1414

1515
Dopo(() => {
16-
console.log('After');
17-
});
16+
console.log('After')
17+
})
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
exports.config = {
2+
tests: './*_no_test.js',
3+
timeout: 10000,
4+
output: '../output',
5+
helpers: {
6+
BDD: {
7+
require: '../support/bdd_helper.js',
8+
},
9+
},
10+
gherkin: {
11+
features: './features/examples.nl.feature',
12+
steps: ['./features/step_definitions/my_steps.nl.js'],
13+
},
14+
include: {},
15+
bootstrap: false,
16+
mocha: {},
17+
name: 'sandbox',
18+
translation: 'nl-NL',
19+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#language: nl
2+
Functionaliteit: Checkout proces
3+
Om producten te kopen
4+
Als klant
5+
Moet ik in staat zijn om meerdere producten te kopen
6+
7+
@i18n
8+
Abstract Scenario: korting bestellen
9+
Gegeven ik heb een product met een prijs van <price>$ in mijn winkelwagen
10+
En de korting voor bestellingen van meer dan $20 is 10 %
11+
Wanneer ik naar de kassa ga
12+
Dan zou ik de totaalprijs van "<total>" $ moeten zien
13+
14+
Voorbeelden:
15+
| price | total |
16+
| 10 | 10.0 |
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const I = actor()
2+
3+
Given('ik heb een product met een prijs van {int}$ in mijn winkelwagen', price => {
4+
I.addItem(parseInt(price, 10))
5+
})
6+
7+
Given('de korting voor bestellingen van meer dan ${int} is {int} %', (maxPrice, discount) => {
8+
I.haveDiscountForPrice(maxPrice, discount)
9+
})
10+
11+
When('ik naar de kassa ga', () => {
12+
I.checkout()
13+
})
14+
15+
Then('zou ik de totaalprijs van "{float}" $ moeten zien', price => {
16+
I.seeSum(price)
17+
})

test/runner/bdd_test.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,5 +353,25 @@ When(/^I define a step with a \\( paren and a "(.*?)" string$/, () => {
353353
done()
354354
})
355355
})
356+
357+
it('should run feature files in NL', done => {
358+
exec(config_run_config('codecept.bdd.nl.js') + ' --steps --grep "@i18n"', (err, stdout, stderr) => {
359+
console.log(stdout)
360+
stdout.should.include('On Gegeven: ik heb een product met een prijs van 10$ in mijn winkelwagen')
361+
stdout.should.include('On En: de korting voor bestellingen van meer dan $20 is 10 %')
362+
stdout.should.include('On Wanneer: ik naar de kassa ga')
363+
stdout.should.include('On Dan: zou ik de totaalprijs van "10.0" $ moeten zien')
364+
stdout.should.include('On Gegeven: ik heb een product met een prijs van 10$ in mijn winkelwagen')
365+
stdout.should.include('Ik add item 10')
366+
stdout.should.include('On En: de korting voor bestellingen van meer dan $20 is 10 %')
367+
stdout.should.include('Ik have discount for price 20, 10')
368+
stdout.should.include('On Wanneer: ik naar de kassa ga')
369+
stdout.should.include('Ik checkout')
370+
stdout.should.include('On Dan: zou ik de totaalprijs van "10.0" $ moeten zien')
371+
stdout.should.include('Ik see sum 10')
372+
assert(!err)
373+
done()
374+
})
375+
})
356376
})
357377
})

test/unit/container_test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ describe('Container', () => {
4646
expect(container.translation()).to.be.instanceOf(Translation)
4747
expect(container.translation().loaded).to.be.true
4848
expect(container.translation().I).to.eql('io')
49-
expect(container.translation().value('contexts').Feature).to.eql('Caratteristica')
49+
expect(container.translation().value('contexts').Feature).to.eql('Funzionalità')
5050
})
5151

5252
it('should create French translation', () => {

test/unit/els_test.js

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,9 @@ describe('els', function () {
3838
let elementUsed
3939

4040
await els.element('my test', '.selector', async el => {
41-
elementUsed = el
41+
elementUsed = await el
4242
})
4343

44-
await recorder.promise()
45-
4644
assert.equal(elementUsed, 'el1')
4745
})
4846

@@ -51,7 +49,7 @@ describe('els', function () {
5149
let elementUsed
5250

5351
await els.element('.selector', async el => {
54-
elementUsed = el
52+
elementUsed = await el
5553
})
5654

5755
assert.equal(elementUsed, 'el1')
@@ -77,7 +75,6 @@ describe('els', function () {
7775
},
7876
new StepConfig().timeout(0.01),
7977
)
80-
await recorder.promise()
8178
throw new Error('should have thrown error')
8279
} catch (e) {
8380
recorder.catch()
@@ -147,7 +144,6 @@ describe('els', function () {
147144
await els.eachElement('.selector', async el => {
148145
throw new Error(`failed on ${el}`)
149146
})
150-
await recorder.promise()
151147
throw new Error('should have thrown error')
152148
} catch (e) {
153149
expect(e.message).to.equal('failed on el1')
@@ -167,7 +163,6 @@ describe('els', function () {
167163

168164
try {
169165
await els.expectElement('.selector', async () => false)
170-
await recorder.promise()
171166
throw new Error('should have thrown error')
172167
} catch (e) {
173168
expect(e.cliMessage()).to.include('element (.selector)')
@@ -187,7 +182,6 @@ describe('els', function () {
187182

188183
try {
189184
await els.expectAnyElement('.selector', async () => false)
190-
await recorder.promise()
191185
throw new Error('should have thrown error')
192186
} catch (e) {
193187
expect(e.cliMessage()).to.include('any element of (.selector)')
@@ -207,7 +201,6 @@ describe('els', function () {
207201

208202
try {
209203
await els.expectAllElements('.selector', async el => el !== 'el2')
210-
await recorder.promise()
211204
throw new Error('should have thrown error')
212205
} catch (e) {
213206
expect(e.cliMessage()).to.include('element #2 of (.selector)')

0 commit comments

Comments
 (0)