@seleniumhq/code-export-csharp-xunit 4.0.12 → 4.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__test__/src/__snapshots__/command.spec.js.snap +7 -7
- package/__test__/src/__snapshots__/index.spec.js.snap +85 -67
- package/__test__/src/command.spec.js +7 -18
- package/__test__/src/index.spec.js +40 -64
- package/dist/command.d.ts +4 -0
- package/dist/command.d.ts.map +1 -1
- package/dist/command.js +7 -5
- package/dist/command.js.map +1 -1
- package/dist/hook.d.ts +1 -0
- package/dist/hook.d.ts.map +1 -1
- package/dist/hook.js +7 -3
- package/dist/hook.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -4
- package/dist/index.js.map +1 -1
- package/jest.config.js +14 -0
- package/package.json +4 -4
- package/src/command.ts +7 -9
- package/src/hook.ts +10 -4
- package/src/index.ts +7 -4
- package/tsconfig.tsbuildinfo +1 -1
package/dist/command.d.ts
CHANGED
|
@@ -7,6 +7,10 @@ declare const _default: {
|
|
|
7
7
|
[x: string]: import("side-code-export").ProcessedCommandEmitter;
|
|
8
8
|
};
|
|
9
9
|
variableLookup: (varName: string) => string;
|
|
10
|
+
variableInString: {
|
|
11
|
+
quotes: string[];
|
|
12
|
+
toString: (lookup: string) => string;
|
|
13
|
+
};
|
|
10
14
|
variableSetter: (varName: string, value: string) => string;
|
|
11
15
|
register: (command: string, emitter: import("side-code-export").PrebuildEmitter) => void;
|
|
12
16
|
extras: {
|
package/dist/command.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,cAAc,EAA0B,MAAM,kBAAkB,CAAA;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAMrD,iBAAS,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,cAAc,EAA0B,MAAM,kBAAkB,CAAA;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAMrD,iBAAS,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,8DAO3D;;;;;;;;;;;;;;;;;;;;;;;;;AAkOD,wBAIC"}
|
package/dist/command.js
CHANGED
|
@@ -25,12 +25,13 @@ function emit(command, context) {
|
|
|
25
25
|
context,
|
|
26
26
|
emitNewWindowHandling: code_export_csharp_commons_1.Command.extras.emitNewWindowHandling,
|
|
27
27
|
variableLookup: code_export_csharp_commons_1.Command.variableLookup,
|
|
28
|
+
variableInString: code_export_csharp_commons_1.Command.variableInString,
|
|
28
29
|
});
|
|
29
30
|
}
|
|
30
31
|
emitters.assert = emitAssert;
|
|
31
32
|
emitters.verify = emitAssert;
|
|
32
33
|
function emitAssert(varName, value) {
|
|
33
|
-
return Promise.resolve(`Assert.Equal(
|
|
34
|
+
return Promise.resolve(`Assert.Equal(${code_export_csharp_commons_1.Command.variableLookup(varName)}, "${value}");`);
|
|
34
35
|
}
|
|
35
36
|
emitters.assertAlert = emitAssertAlert;
|
|
36
37
|
emitters.assertConfirmation = emitAssertAlert;
|
|
@@ -95,7 +96,7 @@ async function emitVerifyNotChecked(locator) {
|
|
|
95
96
|
return Promise.resolve(`Assert.False(driver.FindElement(${await code_export_csharp_commons_1.location.emit(locator)}).Selected);`);
|
|
96
97
|
}
|
|
97
98
|
emitters.assertNotEditable = emitVerifyNotEditable;
|
|
98
|
-
emitters.
|
|
99
|
+
emitters.verifyNotEditable = emitVerifyNotEditable;
|
|
99
100
|
async function emitVerifyNotEditable(locator) {
|
|
100
101
|
const commands = [
|
|
101
102
|
{ level: 0, statement: '{' },
|
|
@@ -123,7 +124,7 @@ async function emitVerifyNotSelectedValue(locator, expectedValue) {
|
|
|
123
124
|
},
|
|
124
125
|
{
|
|
125
126
|
level: 1,
|
|
126
|
-
statement: `Assert.NotEqual(value, ${
|
|
127
|
+
statement: `Assert.NotEqual(value, "${expectedValue}");`,
|
|
127
128
|
},
|
|
128
129
|
{ level: 0, statement: '}' },
|
|
129
130
|
];
|
|
@@ -133,7 +134,7 @@ emitters.assertNotText = emitVerifyNotText;
|
|
|
133
134
|
emitters.verifyNotText = emitVerifyNotText;
|
|
134
135
|
async function emitVerifyNotText(locator, text) {
|
|
135
136
|
const result = `driver.FindElement(${await code_export_csharp_commons_1.location.emit(locator)}).Text`;
|
|
136
|
-
return Promise.resolve(`Assert.NotEqual(${result}, "${
|
|
137
|
+
return Promise.resolve(`Assert.NotEqual(${result}, "${text}");`);
|
|
137
138
|
}
|
|
138
139
|
emitters.assertSelectedLabel = emitVerifySelectedLabel;
|
|
139
140
|
emitters.verifySelectedLabel = emitVerifySelectedLabel;
|
|
@@ -166,6 +167,7 @@ async function emitVerifySelectedLabel(locator, labelValue) {
|
|
|
166
167
|
emitters.assertSelectedValue = emitVerifyValue;
|
|
167
168
|
emitters.verifySelectedValue = emitVerifyValue;
|
|
168
169
|
emitters.assertValue = emitVerifyValue;
|
|
170
|
+
emitters.verifyValue = emitVerifyValue;
|
|
169
171
|
async function emitVerifyValue(locator, value) {
|
|
170
172
|
const commands = [
|
|
171
173
|
{ level: 0, statement: '{' },
|
|
@@ -181,7 +183,7 @@ async function emitVerifyValue(locator, value) {
|
|
|
181
183
|
emitters.assertText = emitVerifyText;
|
|
182
184
|
emitters.verifyText = emitVerifyText;
|
|
183
185
|
async function emitVerifyText(locator, text) {
|
|
184
|
-
return Promise.resolve(`Assert.Equal(driver.FindElement(${await code_export_csharp_commons_1.location.emit(locator)}).Text, "${
|
|
186
|
+
return Promise.resolve(`Assert.Equal(driver.FindElement(${await code_export_csharp_commons_1.location.emit(locator)}).Text, "${text}");`);
|
|
185
187
|
}
|
|
186
188
|
emitters.assertTitle = emitVerifyTitle;
|
|
187
189
|
emitters.verifyTitle = emitVerifyTitle;
|
package/dist/command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,wDAAwD;AACxD,6DAA6D;AAC7D,oDAAoD;AACpD,6DAA6D;AAC7D,6DAA6D;AAC7D,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,4DAA4D;AAC5D,0DAA0D;AAC1D,qBAAqB;;AAErB,uFAA0E;AAC1E,uDAAyE;AAIzE,MAAM,QAAQ,GAAG,EAAE,GAAG,oCAAO,CAAC,QAAQ,EAAE,CAAA;AAExC,6BAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;AAEzC,SAAS,IAAI,CAAC,OAAqB,EAAE,OAAuB;IAC1D,OAAO,6BAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC/D,OAAO;QACP,qBAAqB,EAAE,oCAAO,CAAC,MAAM,CAAC,qBAAqB;QAC3D,cAAc,EAAE,oCAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
|
package/dist/hook.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare const emitters: {
|
|
|
11
11
|
readonly inEachEnd: typeof empty;
|
|
12
12
|
};
|
|
13
13
|
export default emitters;
|
|
14
|
+
export declare const suiteClassName: (suiteName?: string) => string;
|
|
14
15
|
declare function beforeEach(): HookFunctionInputs;
|
|
15
16
|
declare function afterEach(): {
|
|
16
17
|
startingSyntax: {
|
package/dist/hook.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAiBA,OAAO,
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAiBA,OAAO,EAA0B,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAE7E,eAAO,MAAM,QAAQ;;;;;;;;;;CAUX,CAAA;AAEV,eAAe,QAAQ,CAAA;AAGvB,eAAO,MAAM,cAAc,GAAI,kBAAmB,WAGxC,CAAA;AAEV,iBAAS,UAAU,uBA6BlB;AAED,iBAAS,SAAS;;;;;;;;;;;;;EAcjB;AAED,iBAAS,mBAAmB;;;;;;;EAmB3B;AAED,iBAAS,gBAAgB;;;;;;;EAiBxB;AAED,iBAAS,KAAK,OAEb"}
|
package/dist/hook.js
CHANGED
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
// specific language governing permissions and limitations
|
|
17
17
|
// under the License.
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.emitters = void 0;
|
|
19
|
+
exports.suiteClassName = exports.emitters = void 0;
|
|
20
|
+
const side_code_export_1 = require("side-code-export");
|
|
20
21
|
exports.emitters = {
|
|
21
22
|
afterAll: empty,
|
|
22
23
|
afterEach,
|
|
@@ -29,11 +30,14 @@ exports.emitters = {
|
|
|
29
30
|
inEachEnd: empty,
|
|
30
31
|
};
|
|
31
32
|
exports.default = exports.emitters;
|
|
33
|
+
// The test class of a suite, e.g. LoginTests
|
|
34
|
+
const suiteClassName = (suiteName = 'Suite') => `${side_code_export_1.codeExport.parsers.capitalize(side_code_export_1.codeExport.parsers.sanitizeName(suiteName))}Tests`;
|
|
35
|
+
exports.suiteClassName = suiteClassName;
|
|
32
36
|
function beforeEach() {
|
|
33
37
|
const params = {
|
|
34
|
-
startingSyntax: ({ browserName, gridUrl } = {}) => ({
|
|
38
|
+
startingSyntax: ({ browserName, gridUrl, suiteName } = {}) => ({
|
|
35
39
|
commands: [
|
|
36
|
-
{ level: 0, statement: `public
|
|
40
|
+
{ level: 0, statement: `public ${(0, exports.suiteClassName)(suiteName)}()` },
|
|
37
41
|
{ level: 0, statement: `{` },
|
|
38
42
|
{
|
|
39
43
|
level: 1,
|
package/dist/hook.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,wDAAwD;AACxD,6DAA6D;AAC7D,oDAAoD;AACpD,6DAA6D;AAC7D,6DAA6D;AAC7D,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,4DAA4D;AAC5D,0DAA0D;AAC1D,qBAAqB;;;
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAGL,mBAAmB,EAEpB,MAAM,kBAAkB,CAAA;AAMzB,eAAO,MAAM,WAAW,aAAa,CAAA;AAErC,eAAO,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAGL,mBAAmB,EAEpB,MAAM,kBAAkB,CAAA;AAMzB,eAAO,MAAM,WAAW,aAAa,CAAA;AAErC,eAAO,MAAM,IAAI,EAAE,mBA6BlB,CAAA;;AAED,wBAAoD"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,39 @@
|
|
|
15
15
|
// KIND, either express or implied. See the License for the
|
|
16
16
|
// specific language governing permissions and limitations
|
|
17
17
|
// under the License.
|
|
18
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
21
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
22
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
23
|
+
}
|
|
24
|
+
Object.defineProperty(o, k2, desc);
|
|
25
|
+
}) : (function(o, m, k, k2) {
|
|
26
|
+
if (k2 === undefined) k2 = k;
|
|
27
|
+
o[k2] = m[k];
|
|
28
|
+
}));
|
|
29
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
30
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
31
|
+
}) : function(o, v) {
|
|
32
|
+
o["default"] = v;
|
|
33
|
+
});
|
|
34
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
35
|
+
var ownKeys = function(o) {
|
|
36
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
37
|
+
var ar = [];
|
|
38
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
39
|
+
return ar;
|
|
40
|
+
};
|
|
41
|
+
return ownKeys(o);
|
|
42
|
+
};
|
|
43
|
+
return function (mod) {
|
|
44
|
+
if (mod && mod.__esModule) return mod;
|
|
45
|
+
var result = {};
|
|
46
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
47
|
+
__setModuleDefault(result, mod);
|
|
48
|
+
return result;
|
|
49
|
+
};
|
|
50
|
+
})();
|
|
18
51
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
52
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
53
|
};
|
|
@@ -22,7 +55,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
22
55
|
exports.opts = exports.displayName = void 0;
|
|
23
56
|
const side_code_export_1 = require("side-code-export");
|
|
24
57
|
const command_1 = __importDefault(require("./command"));
|
|
25
|
-
const hook_1 =
|
|
58
|
+
const hook_1 = __importStar(require("./hook"));
|
|
26
59
|
const code_export_csharp_commons_1 = require("@seleniumhq/code-export-csharp-commons");
|
|
27
60
|
// Define language options
|
|
28
61
|
exports.displayName = 'C# xUnit';
|
|
@@ -35,17 +68,20 @@ exports.opts = {
|
|
|
35
68
|
commandPrefixPadding: ' ',
|
|
36
69
|
terminatingKeyword: '}',
|
|
37
70
|
commentPrefix: '//',
|
|
71
|
+
// A backslash before a backtick isn't a valid escape
|
|
72
|
+
escapedQuotes: `"'`,
|
|
38
73
|
generateFilename: (name) => {
|
|
39
74
|
return `${side_code_export_1.codeExport.parsers.capitalize(side_code_export_1.codeExport.parsers.sanitizeName(name))}Test${exports.opts.fileExtension}`;
|
|
40
75
|
},
|
|
41
76
|
generateMethodDeclaration: (name) => {
|
|
42
|
-
|
|
77
|
+
// run_ prefix: generated test names can't contain it, so they can't clash
|
|
78
|
+
return `public void run_${side_code_export_1.codeExport.parsers.sanitizeName(name)}() \n{`;
|
|
43
79
|
},
|
|
44
80
|
generateTestDeclaration: (name) => {
|
|
45
81
|
return `[Fact]\npublic void ${side_code_export_1.codeExport.parsers.capitalize(side_code_export_1.codeExport.parsers.sanitizeName(name))}() {`;
|
|
46
82
|
},
|
|
47
|
-
generateSuiteDeclaration: () => {
|
|
48
|
-
return `public class
|
|
83
|
+
generateSuiteDeclaration: (name) => {
|
|
84
|
+
return `public class ${(0, hook_1.suiteClassName)(name)} : IDisposable {`;
|
|
49
85
|
},
|
|
50
86
|
};
|
|
51
87
|
exports.default = (0, side_code_export_1.languageFromOpts)(exports.opts, code_export_csharp_commons_1.location.emit);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,wDAAwD;AACxD,6DAA6D;AAC7D,oDAAoD;AACpD,6DAA6D;AAC7D,6DAA6D;AAC7D,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,4DAA4D;AAC5D,0DAA0D;AAC1D,qBAAqB
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,wDAAwD;AACxD,6DAA6D;AAC7D,oDAAoD;AACpD,6DAA6D;AAC7D,6DAA6D;AAC7D,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,4DAA4D;AAC5D,0DAA0D;AAC1D,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAErB,uDAKyB;AACzB,wDAA+B;AAC/B,+CAA8C;AAC9C,uFAAiE;AAEjE,0BAA0B;AACb,QAAA,WAAW,GAAG,UAAU,CAAA;AAExB,QAAA,IAAI,GAAwB;IACvC,OAAO,EAAE,iBAAO;IAChB,WAAW,EAAX,mBAAW;IACX,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,IAAA,gCAAa,EAAC,cAAK,CAAC;IAC3B,aAAa,EAAE,KAAK;IACpB,oBAAoB,EAAE,IAAI;IAC1B,kBAAkB,EAAE,GAAG;IACvB,aAAa,EAAE,IAAI;IACnB,qDAAqD;IACrD,aAAa,EAAE,IAAI;IACnB,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;QACzB,OAAO,GAAG,6BAAQ,CAAC,OAAO,CAAC,UAAU,CACnC,6BAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CACpC,OAAO,YAAI,CAAC,aAAa,EAAE,CAAA;IAC9B,CAAC;IAED,yBAAyB,EAAE,CAAC,IAAI,EAAE,EAAE;QAClC,0EAA0E;QAC1E,OAAO,mBAAmB,6BAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAA;IACvE,CAAC;IACD,uBAAuB,EAAE,CAAC,IAAI,EAAE,EAAE;QAChC,OAAO,uBAAuB,6BAAQ,CAAC,OAAO,CAAC,UAAU,CACvD,6BAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CACpC,MAAM,CAAA;IACT,CAAC;IACD,wBAAwB,EAAE,CAAC,IAAI,EAAE,EAAE;QACjC,OAAO,gBAAgB,IAAA,qBAAc,EAAC,IAAI,CAAC,kBAAkB,CAAA;IAC/D,CAAC;CACF,CAAA;AAED,kBAAe,IAAA,mCAAgB,EAAC,YAAI,EAAE,qCAAQ,CAAC,IAAI,CAAC,CAAA"}
|
package/jest.config.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
// The snapshots were written with the format from before Jest 29
|
|
3
|
+
snapshotFormat: { escapeString: true, printBasicPrototype: true },
|
|
4
|
+
testEnvironmentOptions: {
|
|
5
|
+
url: 'http://localhost/index.html',
|
|
6
|
+
},
|
|
7
|
+
testMatch: ['**/packages/**/__test?(s)__/**/*.spec.[jt]s?(x)'],
|
|
8
|
+
testPathIgnorePatterns: ['/node_modules/', '/dist/'],
|
|
9
|
+
transform: {
|
|
10
|
+
// Find the repo's babel.config.js from the package folder
|
|
11
|
+
'^.+\\.jsx?$': ['babel-jest', { rootMode: 'upward' }],
|
|
12
|
+
'^.+\\.ts?$': 'ts-jest',
|
|
13
|
+
},
|
|
14
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seleniumhq/code-export-csharp-xunit",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.1.0-beta.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Export Selenium IDE project contents to C# XUnit",
|
|
6
6
|
"repository": "https://github.com/SeleniumHQ/selenium-ide",
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
"main": "dist/index.js",
|
|
14
14
|
"types": "dist/index.d.ts",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"
|
|
17
|
-
"
|
|
16
|
+
"side-code-export": "4.1.0-beta.1",
|
|
17
|
+
"@seleniumhq/code-export-csharp-commons": "4.1.0-beta.1"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@seleniumhq/side-model": "4.0.
|
|
20
|
+
"@seleniumhq/side-model": "4.1.0-beta.1"
|
|
21
21
|
},
|
|
22
22
|
"gitHead": "f58e327e7616e23a3e926e4b80cf9952164e5744",
|
|
23
23
|
"scripts": {
|
package/src/command.ts
CHANGED
|
@@ -29,6 +29,7 @@ function emit(command: CommandShape, context: EmitterContext) {
|
|
|
29
29
|
context,
|
|
30
30
|
emitNewWindowHandling: Command.extras.emitNewWindowHandling,
|
|
31
31
|
variableLookup: Command.variableLookup,
|
|
32
|
+
variableInString: Command.variableInString,
|
|
32
33
|
})
|
|
33
34
|
}
|
|
34
35
|
|
|
@@ -37,7 +38,7 @@ emitters.verify = emitAssert
|
|
|
37
38
|
|
|
38
39
|
function emitAssert(varName: string, value: string) {
|
|
39
40
|
return Promise.resolve(
|
|
40
|
-
`Assert.Equal(
|
|
41
|
+
`Assert.Equal(${Command.variableLookup(varName)}, "${value}");`
|
|
41
42
|
)
|
|
42
43
|
}
|
|
43
44
|
|
|
@@ -131,7 +132,7 @@ async function emitVerifyNotChecked(locator: string) {
|
|
|
131
132
|
}
|
|
132
133
|
|
|
133
134
|
emitters.assertNotEditable = emitVerifyNotEditable
|
|
134
|
-
emitters.
|
|
135
|
+
emitters.verifyNotEditable = emitVerifyNotEditable
|
|
135
136
|
|
|
136
137
|
async function emitVerifyNotEditable(locator: string) {
|
|
137
138
|
const commands = [
|
|
@@ -170,9 +171,7 @@ async function emitVerifyNotSelectedValue(
|
|
|
170
171
|
},
|
|
171
172
|
{
|
|
172
173
|
level: 1,
|
|
173
|
-
statement: `Assert.NotEqual(value, ${
|
|
174
|
-
expectedValue
|
|
175
|
-
)});`,
|
|
174
|
+
statement: `Assert.NotEqual(value, "${expectedValue}");`,
|
|
176
175
|
},
|
|
177
176
|
{ level: 0, statement: '}' },
|
|
178
177
|
]
|
|
@@ -184,9 +183,7 @@ emitters.verifyNotText = emitVerifyNotText
|
|
|
184
183
|
|
|
185
184
|
async function emitVerifyNotText(locator: string, text: string) {
|
|
186
185
|
const result = `driver.FindElement(${await location.emit(locator)}).Text`
|
|
187
|
-
return Promise.resolve(
|
|
188
|
-
`Assert.NotEqual(${result}, "${exporter.emit.text(text)}");`
|
|
189
|
-
)
|
|
186
|
+
return Promise.resolve(`Assert.NotEqual(${result}, "${text}");`)
|
|
190
187
|
}
|
|
191
188
|
|
|
192
189
|
emitters.assertSelectedLabel = emitVerifySelectedLabel
|
|
@@ -225,6 +222,7 @@ async function emitVerifySelectedLabel(locator: string, labelValue: string) {
|
|
|
225
222
|
emitters.assertSelectedValue = emitVerifyValue
|
|
226
223
|
emitters.verifySelectedValue = emitVerifyValue
|
|
227
224
|
emitters.assertValue = emitVerifyValue
|
|
225
|
+
emitters.verifyValue = emitVerifyValue
|
|
228
226
|
|
|
229
227
|
async function emitVerifyValue(locator: string, value: string) {
|
|
230
228
|
const commands = [
|
|
@@ -248,7 +246,7 @@ async function emitVerifyText(locator: string, text: string) {
|
|
|
248
246
|
return Promise.resolve(
|
|
249
247
|
`Assert.Equal(driver.FindElement(${await location.emit(
|
|
250
248
|
locator
|
|
251
|
-
)}).Text, "${
|
|
249
|
+
)}).Text, "${text}");`
|
|
252
250
|
)
|
|
253
251
|
}
|
|
254
252
|
|
package/src/hook.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// specific language governing permissions and limitations
|
|
16
16
|
// under the License.
|
|
17
17
|
|
|
18
|
-
import { HookFunctionInputs } from 'side-code-export'
|
|
18
|
+
import { codeExport as exporter, HookFunctionInputs } from 'side-code-export'
|
|
19
19
|
|
|
20
20
|
export const emitters = {
|
|
21
21
|
afterAll: empty,
|
|
@@ -29,13 +29,19 @@ export const emitters = {
|
|
|
29
29
|
inEachEnd: empty,
|
|
30
30
|
} as const
|
|
31
31
|
|
|
32
|
-
export default emitters
|
|
32
|
+
export default emitters
|
|
33
|
+
|
|
34
|
+
// The test class of a suite, e.g. LoginTests
|
|
35
|
+
export const suiteClassName = (suiteName = 'Suite') =>
|
|
36
|
+
`${exporter.parsers.capitalize(
|
|
37
|
+
exporter.parsers.sanitizeName(suiteName)
|
|
38
|
+
)}Tests`
|
|
33
39
|
|
|
34
40
|
function beforeEach() {
|
|
35
41
|
const params: HookFunctionInputs = {
|
|
36
|
-
startingSyntax: ({ browserName, gridUrl } = {}) => ({
|
|
42
|
+
startingSyntax: ({ browserName, gridUrl, suiteName } = {}) => ({
|
|
37
43
|
commands: [
|
|
38
|
-
{ level: 0, statement: `public
|
|
44
|
+
{ level: 0, statement: `public ${suiteClassName(suiteName)}()` },
|
|
39
45
|
{ level: 0, statement: `{` },
|
|
40
46
|
{
|
|
41
47
|
level: 1,
|
package/src/index.ts
CHANGED
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
languageFromOpts,
|
|
23
23
|
} from 'side-code-export'
|
|
24
24
|
import emitter from './command'
|
|
25
|
-
import hooks from './hook'
|
|
25
|
+
import hooks, { suiteClassName } from './hook'
|
|
26
26
|
import { location } from '@seleniumhq/code-export-csharp-commons'
|
|
27
27
|
|
|
28
28
|
// Define language options
|
|
@@ -37,6 +37,8 @@ export const opts: LanguageEmitterOpts = {
|
|
|
37
37
|
commandPrefixPadding: ' ',
|
|
38
38
|
terminatingKeyword: '}',
|
|
39
39
|
commentPrefix: '//',
|
|
40
|
+
// A backslash before a backtick isn't a valid escape
|
|
41
|
+
escapedQuotes: `"'`,
|
|
40
42
|
generateFilename: (name) => {
|
|
41
43
|
return `${exporter.parsers.capitalize(
|
|
42
44
|
exporter.parsers.sanitizeName(name)
|
|
@@ -44,15 +46,16 @@ export const opts: LanguageEmitterOpts = {
|
|
|
44
46
|
},
|
|
45
47
|
|
|
46
48
|
generateMethodDeclaration: (name) => {
|
|
47
|
-
|
|
49
|
+
// run_ prefix: generated test names can't contain it, so they can't clash
|
|
50
|
+
return `public void run_${exporter.parsers.sanitizeName(name)}() \n{`
|
|
48
51
|
},
|
|
49
52
|
generateTestDeclaration: (name) => {
|
|
50
53
|
return `[Fact]\npublic void ${exporter.parsers.capitalize(
|
|
51
54
|
exporter.parsers.sanitizeName(name)
|
|
52
55
|
)}() {`
|
|
53
56
|
},
|
|
54
|
-
generateSuiteDeclaration: () => {
|
|
55
|
-
return `public class
|
|
57
|
+
generateSuiteDeclaration: (name) => {
|
|
58
|
+
return `public class ${suiteClassName(name)} : IDisposable {`
|
|
56
59
|
},
|
|
57
60
|
}
|
|
58
61
|
|