Skip to content

Commit 034d4ae

Browse files
author
David Haeffner
committed
Added support for an alternative terminatingKeyword when emitting methods/functions
1 parent 164ff2e commit 034d4ae

File tree

4 files changed

+26
-14
lines changed

4 files changed

+26
-14
lines changed

packages/code-export-javascript-mocha/src/command.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,13 @@ function variableSetter(varName, value) {
146146

147147
function emitWaitForWindow() {
148148
const generateMethodDeclaration = name => {
149-
return `async function ${name}(timeout = 2) {`
149+
return {
150+
body: `async function ${name}(timeout = 2) {`,
151+
terminatingKeyword: '}',
152+
}
150153
}
151154
const commands = [
152-
{ level: 0, statement: 'await driver.sleep(timeout / 1000)' },
155+
{ level: 0, statement: 'await driver.sleep(timeout)' },
153156
{ level: 0, statement: 'const handlesThen = vars["windowHandles"]' },
154157
{
155158
level: 0,

packages/code-export-javascript-mocha/src/index.js

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,18 @@ opts.generateMethodDeclaration = generateMethodDeclaration
3434

3535
// Create generators for dynamic string creation of primary entities (e.g., filename, methods, test, and suite)
3636
function generateTestDeclaration(name) {
37-
return `it('${exporter.parsers.uncapitalize(
38-
exporter.parsers.sanitizeName(name)
39-
)}', async function() {`
37+
return `it('${name}', async function() {`
4038
}
4139
function generateMethodDeclaration(name) {
42-
return `async function ${exporter.parsers.uncapitalize(
43-
exporter.parsers.sanitizeName(name)
44-
)}() {`
40+
return {
41+
body: `async function ${exporter.parsers.uncapitalize(
42+
exporter.parsers.sanitizeName(name)
43+
)}() {`,
44+
terminatingKeyword: '}',
45+
}
4546
}
4647
function generateSuiteDeclaration(name) {
47-
return `describe('${exporter.parsers.uncapitalize(
48-
exporter.parsers.sanitizeName(name)
49-
)}', function() {`
48+
return `describe('${name}', function() {`
5049
}
5150
function generateFilename(name) {
5251
return `${exporter.parsers.uncapitalize(

packages/code-export-utils/src/emit.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,12 @@ async function emitMethod(
105105
} = {}
106106
) {
107107
const methodDeclaration = generateMethodDeclaration(method.name)
108+
let _methodDeclaration = methodDeclaration
109+
let _terminatingKeyword = terminatingKeyword
110+
if (typeof methodDeclaration === 'object') {
111+
_methodDeclaration = methodDeclaration.body
112+
_terminatingKeyword = methodDeclaration.terminatingKeyword
113+
}
108114
let result
109115
if (overrideCommandEmitting) {
110116
result = method.commands.map(
@@ -114,9 +120,9 @@ async function emitMethod(
114120
result = await emitCommands(method.commands, emitter)
115121
}
116122
return [
117-
methodDeclaration,
123+
_methodDeclaration,
118124
result.join(`\n${commandPrefixPadding}`).replace(/^/, commandPrefixPadding),
119-
terminatingKeyword,
125+
_terminatingKeyword,
120126
]
121127
}
122128

packages/code-export-utils/src/register.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,11 @@ export async function registerMethod(
4949
result,
5050
{ generateMethodDeclaration, hooks }
5151
) {
52-
const methodDeclaration = generateMethodDeclaration(name)
52+
let methodDeclaration = generateMethodDeclaration(name)
53+
methodDeclaration =
54+
typeof methodDeclaration === 'object'
55+
? methodDeclaration.body
56+
: methodDeclaration
5357
if (!(await hooks.declareMethods.isRegistered(methodDeclaration))) {
5458
result.forEach(statement => {
5559
hooks.declareMethods.register(() => {

0 commit comments

Comments
 (0)