@anddone/adminportaltestautomation 1.3.1 → 1.3.3
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/.github/workflows/npm-release.yml +6 -5
- package/.github/workflows/test.yml +40 -0
- package/dist/config/config.d.ts +9 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +26 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/environment.d.ts +7 -0
- package/dist/config/environment.d.ts.map +1 -0
- package/dist/config/environment.js +11 -0
- package/dist/config/environment.js.map +1 -0
- package/dist/pages/HomePage.d.ts.map +1 -1
- package/dist/pages/HomePage.js.map +1 -1
- package/dist/pages/LoginPage.d.ts.map +1 -1
- package/dist/pages/LoginPage.js +3 -2
- package/dist/pages/LoginPage.js.map +1 -1
- package/package.json +2 -1
- package/playwright.config.ts +5 -4
- package/src/config/config.ts +30 -0
- package/src/config/environment.ts +6 -0
- package/src/pages/HomePage.ts +0 -1
- package/src/pages/LoginPage.ts +3 -2
- package/tests/login.spec.ts +4 -4
|
@@ -50,7 +50,7 @@ jobs:
|
|
|
50
50
|
# Get current version
|
|
51
51
|
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
52
52
|
|
|
53
|
-
# Calculate new version without
|
|
53
|
+
# Calculate new version without creating a tag yet
|
|
54
54
|
NEW_VERSION=$(npm version $RELEASE_TYPE --no-git-tag-version)
|
|
55
55
|
|
|
56
56
|
echo "Current version: $CURRENT_VERSION"
|
|
@@ -60,7 +60,7 @@ jobs:
|
|
|
60
60
|
git add package.json
|
|
61
61
|
git commit -m "chore(release): $NEW_VERSION"
|
|
62
62
|
|
|
63
|
-
# Delete tag if
|
|
63
|
+
# Delete tag if exists (avoid errors in CI)
|
|
64
64
|
if git rev-parse "v$NEW_VERSION" >/dev/null 2>&1; then
|
|
65
65
|
git tag -d "v$NEW_VERSION"
|
|
66
66
|
git push origin :refs/tags/v$NEW_VERSION
|
|
@@ -69,8 +69,8 @@ jobs:
|
|
|
69
69
|
# Create new tag
|
|
70
70
|
git tag "v$NEW_VERSION"
|
|
71
71
|
|
|
72
|
-
#
|
|
73
|
-
git push
|
|
72
|
+
# Push commit + tag
|
|
73
|
+
git push origin master --follow-tags
|
|
74
74
|
|
|
75
75
|
# 7. Publish to npm
|
|
76
76
|
- name: Publish to npm
|
|
@@ -82,11 +82,12 @@ jobs:
|
|
|
82
82
|
- name: Slack Success
|
|
83
83
|
if: success()
|
|
84
84
|
run: |
|
|
85
|
+
PACKAGE_NAME="@anddone/adminportaltestautomation"
|
|
85
86
|
VERSION=$(node -p "require('./package.json').version")
|
|
86
87
|
curl -X POST -H 'Content-type: application/json' \
|
|
87
88
|
--data "{
|
|
88
89
|
\"username\": \"AdminPortalTestAutomation\",
|
|
89
|
-
\"text\": \":white_check_mark: npm package published!\n*Version:* $VERSION\n*Notes:*\n• Added
|
|
90
|
+
\"text\": \":white_check_mark: npm package published!\n*Package:* $PACKAGE_NAME\n*Version:* $VERSION\n*Release Notes:*\n• Added Admin Portal Test Automation\n• Payment Page methods\"
|
|
90
91
|
}" \
|
|
91
92
|
${{ secrets.SLACK_WEBHOOK_URL }}
|
|
92
93
|
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: Run Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
pull_request:
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
inputs:
|
|
8
|
+
environment:
|
|
9
|
+
description: 'Select environment to run tests'
|
|
10
|
+
required: true
|
|
11
|
+
default: 'qat'
|
|
12
|
+
type: choice
|
|
13
|
+
options:
|
|
14
|
+
- qat
|
|
15
|
+
- uat
|
|
16
|
+
- staging
|
|
17
|
+
- prod
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
test:
|
|
21
|
+
runs-on: windows-latest
|
|
22
|
+
|
|
23
|
+
env:
|
|
24
|
+
TEST_ENV: ${{ github.event.inputs.environment || 'qat' }}
|
|
25
|
+
TEST_USERNAME: ${{ secrets.TEST_USERNAME }}
|
|
26
|
+
TEST_PASSWORD: ${{ secrets.TEST_PASSWORD }}
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@v3
|
|
30
|
+
|
|
31
|
+
- name: Setup Node.js
|
|
32
|
+
uses: actions/setup-node@v3
|
|
33
|
+
with:
|
|
34
|
+
node-version: '18'
|
|
35
|
+
|
|
36
|
+
- name: Install dependencies
|
|
37
|
+
run: npm install
|
|
38
|
+
|
|
39
|
+
- name: Run tests
|
|
40
|
+
run: npm test
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,UAAU,MAAM;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAuBD,eAAO,MAAM,MAAM,QAAuB,CAAC;AAC3C,eAAO,MAAM,kBAAkB,aAAc,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.currentEnvironment = exports.config = void 0;
|
|
4
|
+
const environment_1 = require("./environment");
|
|
5
|
+
const configs = {
|
|
6
|
+
[environment_1.Environment.DEV]: {
|
|
7
|
+
baseUrl: 'https://admin.dev.anddone.com/#',
|
|
8
|
+
apiUrl: 'https://api.dev.anddone.com'
|
|
9
|
+
},
|
|
10
|
+
[environment_1.Environment.QAT]: {
|
|
11
|
+
baseUrl: 'https://admin.qat.anddone.com/#',
|
|
12
|
+
apiUrl: 'https://api.qat.anddone.com'
|
|
13
|
+
},
|
|
14
|
+
[environment_1.Environment.STAGING]: {
|
|
15
|
+
baseUrl: 'https://admin.staging.anddone.com/#',
|
|
16
|
+
apiUrl: 'https://api.staging.anddone.com'
|
|
17
|
+
},
|
|
18
|
+
[environment_1.Environment.PROD]: {
|
|
19
|
+
baseUrl: 'https://admin.anddone.com/#',
|
|
20
|
+
apiUrl: 'https://api.anddone.com'
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const environment = (process.env.TEST_ENV || environment_1.Environment.QAT);
|
|
24
|
+
exports.config = configs[environment];
|
|
25
|
+
exports.currentEnvironment = environment;
|
|
26
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAO5C,MAAM,OAAO,GAAgC;IAC3C,CAAC,yBAAW,CAAC,GAAG,CAAC,EAAE;QACjB,OAAO,EAAE,iCAAiC;QAC1C,MAAM,EAAE,6BAA6B;KACtC;IACD,CAAC,yBAAW,CAAC,GAAG,CAAC,EAAE;QACjB,OAAO,EAAE,iCAAiC;QAC1C,MAAM,EAAE,6BAA6B;KACtC;IACD,CAAC,yBAAW,CAAC,OAAO,CAAC,EAAE;QACrB,OAAO,EAAE,qCAAqC;QAC9C,MAAM,EAAE,iCAAiC;KAC1C;IACD,CAAC,yBAAW,CAAC,IAAI,CAAC,EAAE;QAClB,OAAO,EAAE,6BAA6B;QACtC,MAAM,EAAE,yBAAyB;KAClC;CACF,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,yBAAW,CAAC,GAAG,CAAgB,CAAC;AAEhE,QAAA,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9B,QAAA,kBAAkB,GAAG,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/config/environment.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,IAAI,SAAS;CACd"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Environment = void 0;
|
|
4
|
+
var Environment;
|
|
5
|
+
(function (Environment) {
|
|
6
|
+
Environment["DEV"] = "dev";
|
|
7
|
+
Environment["QAT"] = "qat";
|
|
8
|
+
Environment["STAGING"] = "staging";
|
|
9
|
+
Environment["PROD"] = "prod";
|
|
10
|
+
})(Environment || (exports.Environment = Environment = {}));
|
|
11
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/config/environment.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,0BAAW,CAAA;IACX,kCAAmB,CAAA;IACnB,4BAAa,CAAA;AACf,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HomePage.d.ts","sourceRoot":"","sources":["../../src/pages/HomePage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAU,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"HomePage.d.ts","sourceRoot":"","sources":["../../src/pages/HomePage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAU,MAAM,kBAAkB,CAAC;AAEzD,qBAAa,QAAQ;IACjB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;gBAEtB,IAAI,EAAE,IAAI;IAUtB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzC;;OAEG;IACG,mBAAmB;IAIzB;;OAEG;IAEH;;OAEG;IACG,gBAAgB;IAKtB;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAGxC,eAAe;CAIxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HomePage.js","sourceRoot":"","sources":["../../src/pages/HomePage.ts"],"names":[],"mappings":";;;AAAA,2CAAyD;
|
|
1
|
+
{"version":3,"file":"HomePage.js","sourceRoot":"","sources":["../../src/pages/HomePage.ts"],"names":[],"mappings":";;;AAAA,2CAAyD;AAEzD,MAAa,QAAQ;IAKjB,YAAY,IAAU;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,wCAAwC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC;QAErF,4BAA4B;QAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,qFAAqF,CAAC,CAAC,KAAK,EAAE,CAAC;IACvI,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACjB,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB;QACrB,MAAM,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IAEH;;OAEG;IACH,KAAK,CAAC,gBAAgB;QAClB,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB;QACtB,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;IAClD,CAAC;IACD,KAAK,CAAC,eAAe;QACjB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;CACJ;AAnDD,4BAmDC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginPage.d.ts","sourceRoot":"","sources":["../../src/pages/LoginPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"LoginPage.d.ts","sourceRoot":"","sources":["../../src/pages/LoginPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIjD,qBAAa,SAAS;IAClB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,OAAO,CAAU;gBAEb,IAAI,EAAE,IAAI;IAYtB;;OAEG;IACG,IAAI;IAIV;;;;OAIG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAQ9C;;;;OAIG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAKrD;;OAEG;IACG,iBAAiB;IAKvB;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAO3C;;;;OAIG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAqDvD"}
|
package/dist/pages/LoginPage.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LoginPage = void 0;
|
|
4
4
|
const authAPI_1 = require("../utils/authAPI");
|
|
5
|
+
const config_1 = require("../config/config");
|
|
5
6
|
class LoginPage {
|
|
6
7
|
constructor(page) {
|
|
7
8
|
this.page = page;
|
|
8
|
-
this.url =
|
|
9
|
-
this.homeUrl =
|
|
9
|
+
this.url = `${config_1.config.baseUrl}/login`;
|
|
10
|
+
this.homeUrl = config_1.config.baseUrl;
|
|
10
11
|
this.authAPI = new authAPI_1.AuthAPI();
|
|
11
12
|
// Update these selectors based on actual page elements
|
|
12
13
|
this.usernameInput = page.locator('#userName').first();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginPage.js","sourceRoot":"","sources":["../../src/pages/LoginPage.ts"],"names":[],"mappings":";;;AACA,8CAA2C;
|
|
1
|
+
{"version":3,"file":"LoginPage.js","sourceRoot":"","sources":["../../src/pages/LoginPage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anddone/adminportaltestautomation",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.3",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"description": "Admin Portal Test Automation package",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@playwright/test": "^1.58.1",
|
|
22
22
|
"@types/node": "^25.0.3",
|
|
23
|
+
"dotenv": "^17.2.3",
|
|
23
24
|
"rimraf": "^5.0.0",
|
|
24
25
|
"typescript": "^5.2.2"
|
|
25
26
|
}
|
package/playwright.config.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { defineConfig, devices } from '@playwright/test';
|
|
2
|
+
import { config } from './src/config/config';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Read environment variables from file.
|
|
5
6
|
* https://github.com/motdotla/dotenv
|
|
6
7
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
import dotenv from 'dotenv';
|
|
9
|
+
import path from 'path';
|
|
10
|
+
dotenv.config({ path: path.resolve(__dirname, '.env') });
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* See https://playwright.dev/docs/test-configuration.
|
|
@@ -26,7 +27,7 @@ export default defineConfig({
|
|
|
26
27
|
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
|
|
27
28
|
use: {
|
|
28
29
|
/* Base URL to use in actions like `await page.goto('')`. */
|
|
29
|
-
baseURL:
|
|
30
|
+
baseURL: config.baseUrl.replace('/#', ''),
|
|
30
31
|
|
|
31
32
|
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
|
|
32
33
|
trace: 'on-first-retry',
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Environment } from './environment';
|
|
2
|
+
|
|
3
|
+
interface Config {
|
|
4
|
+
baseUrl: string;
|
|
5
|
+
apiUrl: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const configs: Record<Environment, Config> = {
|
|
9
|
+
[Environment.DEV]: {
|
|
10
|
+
baseUrl: 'https://admin.dev.anddone.com/#',
|
|
11
|
+
apiUrl: 'https://api.dev.anddone.com'
|
|
12
|
+
},
|
|
13
|
+
[Environment.QAT]: {
|
|
14
|
+
baseUrl: 'https://admin.qat.anddone.com/#',
|
|
15
|
+
apiUrl: 'https://api.qat.anddone.com'
|
|
16
|
+
},
|
|
17
|
+
[Environment.STAGING]: {
|
|
18
|
+
baseUrl: 'https://admin.staging.anddone.com/#',
|
|
19
|
+
apiUrl: 'https://api.staging.anddone.com'
|
|
20
|
+
},
|
|
21
|
+
[Environment.PROD]: {
|
|
22
|
+
baseUrl: 'https://admin.anddone.com/#',
|
|
23
|
+
apiUrl: 'https://api.anddone.com'
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const environment = (process.env.TEST_ENV || Environment.QAT) as Environment;
|
|
28
|
+
|
|
29
|
+
export const config = configs[environment];
|
|
30
|
+
export const currentEnvironment = environment;
|
package/src/pages/HomePage.ts
CHANGED
package/src/pages/LoginPage.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Page, Locator } from '@playwright/test';
|
|
2
2
|
import { AuthAPI } from '../utils/authAPI';
|
|
3
|
+
import { config } from '../config/config';
|
|
3
4
|
|
|
4
5
|
export class LoginPage {
|
|
5
6
|
readonly page: Page;
|
|
@@ -12,8 +13,8 @@ export class LoginPage {
|
|
|
12
13
|
|
|
13
14
|
constructor(page: Page) {
|
|
14
15
|
this.page = page;
|
|
15
|
-
this.url =
|
|
16
|
-
this.homeUrl =
|
|
16
|
+
this.url = `${config.baseUrl}/login`;
|
|
17
|
+
this.homeUrl = config.baseUrl;
|
|
17
18
|
this.authAPI = new AuthAPI();
|
|
18
19
|
|
|
19
20
|
// Update these selectors based on actual page elements
|
package/tests/login.spec.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { test, expect } from "@playwright/test";
|
|
2
|
-
import { LoginPage } from "../pages/LoginPage";
|
|
3
|
-
import { HomePage } from "../pages/HomePage";
|
|
4
|
-
import { PaymentPage } from "../pages/PaymentPage";
|
|
2
|
+
import { LoginPage } from "../src/pages/LoginPage";
|
|
3
|
+
import { HomePage } from "../src/pages/HomePage";
|
|
4
|
+
import { PaymentPage } from "../src/pages/PaymentPage";
|
|
5
5
|
|
|
6
6
|
test.describe("AdminPortal Login Tests", () => {
|
|
7
7
|
test("should verify payment details and fetch transaction details", async ({
|
|
@@ -10,7 +10,7 @@ test.describe("AdminPortal Login Tests", () => {
|
|
|
10
10
|
// Perform login
|
|
11
11
|
const loginPage = new LoginPage(page);
|
|
12
12
|
await loginPage.goto();
|
|
13
|
-
await loginPage.login(
|
|
13
|
+
await loginPage.login(process.env.TEST_USERNAME!, process.env.TEST_PASSWORD!);
|
|
14
14
|
|
|
15
15
|
// Navigate to payments
|
|
16
16
|
const homePage = new HomePage(page);
|