create-appraisejs 0.1.10-alpha.1 → 0.1.10-alpha.10
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/dist/cli.js +0 -0
- package/dist/copy-template.d.ts.map +1 -1
- package/dist/copy-template.js +5 -1
- package/dist/copy-template.js.map +1 -1
- package/dist/install.d.ts +2 -2
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +2 -3
- package/dist/install.js.map +1 -1
- package/dist/prepare-template-utils.d.ts.map +1 -1
- package/dist/prepare-template-utils.js +11 -5
- package/dist/prepare-template-utils.js.map +1 -1
- package/dist/scaffold-gitignore.d.ts +5 -0
- package/dist/scaffold-gitignore.d.ts.map +1 -0
- package/dist/scaffold-gitignore.js +23 -0
- package/dist/scaffold-gitignore.js.map +1 -0
- package/dist/sync-templates-utils.d.ts +2 -0
- package/dist/sync-templates-utils.d.ts.map +1 -0
- package/dist/sync-templates-utils.js +13 -0
- package/dist/sync-templates-utils.js.map +1 -0
- package/package.json +8 -4
- package/templates/default/.appraise-template-meta.json +2 -2
- package/templates/default/.vscode/settings.json +2 -1
- package/templates/default/automation/config/environments/environments.json +1 -0
- package/templates/default/automation/mapping/locator-map.json +1 -14
- package/templates/default/automation/steps/actions/input.step.ts +84 -84
- package/templates/default/gitignore +56 -0
- package/templates/default/next-env.d.ts +6 -0
- package/templates/default/next.config.ts +1 -3
- package/templates/default/package-lock.json +54 -367
- package/templates/default/package.json +5 -5
- package/templates/default/packages/cucumber-runtime/src/hooks.ts +25 -3
- package/templates/default/packages/cucumber-runtime/src/paths.ts +66 -1
- package/templates/default/packages/locator-picker-companion/dist/cli.d.ts +1 -0
- package/templates/default/packages/locator-picker-companion/dist/cli.js +302 -0
- package/templates/default/packages/locator-picker-companion/dist/index.d.ts +3 -0
- package/templates/default/packages/locator-picker-companion/dist/index.js +3 -0
- package/templates/default/packages/locator-picker-companion/dist/injected-picker-script.d.ts +1 -0
- package/templates/default/packages/locator-picker-companion/dist/injected-picker-script.js +615 -0
- package/templates/default/packages/locator-picker-companion/dist/launcher.d.ts +11 -0
- package/templates/default/packages/locator-picker-companion/dist/launcher.js +59 -0
- package/templates/default/packages/locator-picker-companion/dist/selector-generator.d.ts +3 -0
- package/templates/default/packages/locator-picker-companion/dist/selector-generator.js +257 -0
- package/templates/default/packages/locator-picker-companion/dist/session-file.d.ts +22 -0
- package/templates/default/packages/locator-picker-companion/dist/session-file.js +150 -0
- package/templates/default/packages/locator-picker-companion/dist/types.d.ts +31 -0
- package/templates/default/packages/locator-picker-companion/dist/types.js +1 -0
- package/templates/default/packages/locator-picker-companion/package.json +17 -0
- package/templates/default/packages/locator-picker-companion/src/cli.ts +428 -0
- package/templates/default/packages/locator-picker-companion/src/index.ts +3 -0
- package/templates/default/packages/locator-picker-companion/src/injected-picker-script.ts +771 -0
- package/templates/default/packages/locator-picker-companion/src/launcher.ts +77 -0
- package/templates/default/packages/locator-picker-companion/src/selector-generator.ts +339 -0
- package/templates/default/packages/locator-picker-companion/src/session-file.ts +226 -0
- package/templates/default/packages/locator-picker-companion/src/types.ts +42 -0
- package/templates/default/packages/locator-picker-companion/tsconfig.json +14 -0
- package/templates/default/prisma/dev.db +0 -0
- package/templates/default/prisma/migrations/20260313093000_add_report_step_screenshot_path/migration.sql +1 -0
- package/templates/default/prisma/migrations/20260318120000_add_test_suite_context_to_test_run_test_case/migration.sql +20 -0
- package/templates/default/prisma/migrations/20260318173512_add_support_of_test_suite_level_runs/migration.sql +2 -0
- package/templates/default/prisma/schema.prisma +4 -0
- package/templates/default/scripts/install-playwright.ts +20 -0
- package/templates/default/scripts/protect-seeded-files.ts +38 -0
- package/templates/default/scripts/sync-all.ts +22 -66
- package/templates/default/scripts/sync-appraise-base-template.ts +60 -19
- package/templates/default/scripts/sync-tags.ts +2 -3
- package/templates/default/scripts/sync-test-cases.ts +3 -5
- package/templates/default/src/actions/locator-groups/locator-group-actions.ts +6 -3
- package/templates/default/src/actions/locator-picker/locator-picker-actions.ts +243 -0
- package/templates/default/src/actions/reports/report-actions.ts +51 -49
- package/templates/default/src/actions/settings/sync-actions.ts +41 -0
- package/templates/default/src/actions/test-run/test-run-actions.ts +222 -129
- package/templates/default/src/actions/test-suite/test-suite-actions.ts +95 -17
- package/templates/default/src/app/(base)/locator-groups/page.tsx +20 -8
- package/templates/default/src/app/(base)/locators/create/create-locator-workspace.tsx +542 -0
- package/templates/default/src/app/(base)/locators/create/page.tsx +32 -19
- package/templates/default/src/app/(base)/locators/modify/[id]/page.tsx +56 -27
- package/templates/default/src/app/(base)/locators/page.tsx +13 -13
- package/templates/default/src/app/(base)/locators/picker/page.tsx +7 -0
- package/templates/default/src/app/(base)/reports/[id]/page.tsx +40 -33
- package/templates/default/src/app/(base)/reports/overview-chart.tsx +3 -0
- package/templates/default/src/app/(base)/reports/report-metric-card.tsx +68 -6
- package/templates/default/src/app/(base)/reports/report-view-table-columns.tsx +12 -1
- package/templates/default/src/app/(base)/reports/report-view-table.tsx +1 -0
- package/templates/default/src/app/(base)/reports/test-cases/page.tsx +4 -6
- package/templates/default/src/app/(base)/reports/view-logs-button.tsx +25 -27
- package/templates/default/src/app/(base)/settings/page.tsx +30 -0
- package/templates/default/src/app/(base)/settings/settings-sync-panel.tsx +254 -0
- package/templates/default/src/app/(base)/test-cases/page.tsx +2 -2
- package/templates/default/src/app/(base)/test-cases/test-case-table-columns.tsx +6 -71
- package/templates/default/src/app/(base)/test-cases/test-case-table.tsx +2 -2
- package/templates/default/src/app/(base)/test-runs/[id]/page.tsx +4 -1
- package/templates/default/src/app/(base)/test-runs/create/page.tsx +11 -9
- package/templates/default/src/app/(base)/test-runs/test-run-form.tsx +37 -44
- package/templates/default/src/app/(base)/test-suites/create/page.tsx +3 -2
- package/templates/default/src/app/(base)/test-suites/modify/[id]/page.tsx +2 -1
- package/templates/default/src/app/(base)/test-suites/page.tsx +57 -21
- package/templates/default/src/app/(base)/test-suites/test-suite-form.tsx +16 -17
- package/templates/default/src/app/(base)/test-suites/test-suite-table-columns.tsx +2 -1
- package/templates/default/src/app/api/reports/steps/[stepId]/screenshot/route.ts +52 -0
- package/templates/default/src/app/api/test-runs/[runId]/download/route.ts +97 -34
- package/templates/default/src/app/api/test-runs/[runId]/logs/route.ts +4 -1
- package/templates/default/src/app/api/test-runs/[runId]/trace/[testCaseId]/route.ts +12 -13
- package/templates/default/src/app/layout.tsx +113 -112
- package/templates/default/src/app/page.tsx +2 -0
- package/templates/default/src/components/navigation/nav-command.tsx +13 -0
- package/templates/default/src/components/reports/test-case-logs-modal.tsx +185 -128
- package/templates/default/src/components/test-case/test-case-columns.tsx +76 -0
- package/templates/default/src/components/test-case/test-case-picker.tsx +244 -0
- package/templates/default/src/components/test-run/download-logs-button.tsx +6 -13
- package/templates/default/src/components/test-run/log-viewer.tsx +1 -14
- package/templates/default/src/components/test-run/test-run-details.tsx +15 -2
- package/templates/default/src/components/test-suite/test-suite-picker.tsx +444 -0
- package/templates/default/src/constants/form-opts/test-run-form-opts.ts +5 -3
- package/templates/default/src/lib/automation/paths.ts +42 -12
- package/templates/default/src/lib/database-sync.ts +2 -7
- package/templates/default/src/lib/executor/local-executor-adapter.ts +24 -25
- package/templates/default/src/lib/executor/types.ts +2 -2
- package/templates/default/src/lib/locator-picker/session-manager.ts +452 -0
- package/templates/default/src/lib/locator-picker/suggestions.ts +124 -0
- package/templates/default/src/lib/metrics/metric-calculator.ts +5 -0
- package/templates/default/src/lib/process/task-spawner.ts +39 -2
- package/templates/default/src/lib/sync/sync-executor.ts +130 -0
- package/templates/default/src/lib/sync/sync-pending-counts.ts +1343 -0
- package/templates/default/src/lib/sync/sync-registry.ts +149 -0
- package/templates/default/src/lib/tag-utils.ts +28 -0
- package/templates/default/src/lib/test-run/matching.ts +117 -0
- package/templates/default/src/lib/test-run/process-manager.ts +2 -0
- package/templates/default/src/lib/test-run/report-parser.ts +36 -0
- package/templates/default/src/lib/test-run/test-run-executor.ts +2 -4
- package/templates/default/src/lib/test-run/winston-logger.ts +6 -8
- package/templates/default/src/lib/test-suite-identifier-service.ts +76 -0
- package/templates/default/src/lib/test-suite-utils.ts +6 -0
- package/templates/default/src/types/locator-picker.ts +65 -0
- package/templates/default/src/types/test-case-picker.ts +6 -0
- package/templates/default/src/types/test-suite-picker.ts +18 -0
- package/templates/default/tsconfig.json +4 -1
- package/dist/cli.e2e.test.d.ts +0 -2
- package/dist/cli.e2e.test.d.ts.map +0 -1
- package/dist/cli.e2e.test.js +0 -76
- package/dist/cli.e2e.test.js.map +0 -1
- package/dist/config.test.d.ts +0 -2
- package/dist/config.test.d.ts.map +0 -1
- package/dist/config.test.js +0 -69
- package/dist/config.test.js.map +0 -1
- package/dist/copy-template.test.d.ts +0 -2
- package/dist/copy-template.test.d.ts.map +0 -1
- package/dist/copy-template.test.js +0 -76
- package/dist/copy-template.test.js.map +0 -1
- package/dist/create-project.test.d.ts +0 -2
- package/dist/create-project.test.d.ts.map +0 -1
- package/dist/create-project.test.js +0 -80
- package/dist/create-project.test.js.map +0 -1
- package/dist/download-repo.test.d.ts +0 -2
- package/dist/download-repo.test.d.ts.map +0 -1
- package/dist/download-repo.test.js +0 -14
- package/dist/download-repo.test.js.map +0 -1
- package/dist/install.test.d.ts +0 -2
- package/dist/install.test.d.ts.map +0 -1
- package/dist/install.test.js +0 -135
- package/dist/install.test.js.map +0 -1
- package/dist/package-manager.test.d.ts +0 -2
- package/dist/package-manager.test.d.ts.map +0 -1
- package/dist/package-manager.test.js +0 -51
- package/dist/package-manager.test.js.map +0 -1
- package/dist/prepare-template-utils.test.d.ts +0 -2
- package/dist/prepare-template-utils.test.d.ts.map +0 -1
- package/dist/prepare-template-utils.test.js +0 -67
- package/dist/prepare-template-utils.test.js.map +0 -1
- package/dist/prompts.test.d.ts +0 -2
- package/dist/prompts.test.d.ts.map +0 -1
- package/dist/prompts.test.js +0 -68
- package/dist/prompts.test.js.map +0 -1
- package/dist/template-sync-utils.test.d.ts +0 -2
- package/dist/template-sync-utils.test.d.ts.map +0 -1
- package/dist/template-sync-utils.test.js +0 -41
- package/dist/template-sync-utils.test.js.map +0 -1
- package/templates/default/appraisejs.config.json +0 -1
- package/templates/default/automation/features/base/login.feature +0 -15
- package/templates/default/automation/locators/base/home.json +0 -3
- package/templates/default/automation/locators/base/login.json +0 -6
- package/templates/default/automation/locators/base/test.json +0 -1
- package/templates/default/src/components/devtools/providers.tsx +0 -19
package/dist/cli.js
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-template.d.ts","sourceRoot":"","sources":["../src/copy-template.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"copy-template.d.ts","sourceRoot":"","sources":["../src/copy-template.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAoElD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,MAAM,EAAE,CAE/F;AAED,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAMD,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvE,oBAAoB,CAAC,EAAE,MAAM,EAC7B,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,IAAI,CAAC,CAgCf"}
|
package/dist/copy-template.js
CHANGED
|
@@ -4,6 +4,7 @@ import { fileURLToPath } from 'url';
|
|
|
4
4
|
import cliProgress from 'cli-progress';
|
|
5
5
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
6
6
|
const SEEDED_DB_PATH = path.join('prisma', 'dev.db');
|
|
7
|
+
const PACKAGED_GITIGNORE_PATH = 'gitignore';
|
|
7
8
|
const EXCLUDED_DIRS = new Set(['node_modules', '.next', '.git']);
|
|
8
9
|
const EXCLUDED_FILES = new Set([
|
|
9
10
|
'.env',
|
|
@@ -77,6 +78,9 @@ export function getTemplatePath() {
|
|
|
77
78
|
const packageDir = path.resolve(__dirname, '..');
|
|
78
79
|
return path.join(packageDir, 'templates', 'default');
|
|
79
80
|
}
|
|
81
|
+
function getDestinationRelativePath(relativePath) {
|
|
82
|
+
return relativePath === PACKAGED_GITIGNORE_PATH ? '.gitignore' : relativePath;
|
|
83
|
+
}
|
|
80
84
|
export async function copyTemplate(destDir, onProgress, templatePathOverride, packageManager) {
|
|
81
85
|
const templatePath = templatePathOverride ?? getTemplatePath();
|
|
82
86
|
if (!(await fs.pathExists(templatePath))) {
|
|
@@ -95,7 +99,7 @@ export async function copyTemplate(destDir, onProgress, templatePathOverride, pa
|
|
|
95
99
|
for (let i = 0; i < files.length; i++) {
|
|
96
100
|
const rel = files[i];
|
|
97
101
|
const srcFile = path.join(templatePath, rel);
|
|
98
|
-
const destFile = path.join(destDir, rel);
|
|
102
|
+
const destFile = path.join(destDir, getDestinationRelativePath(rel));
|
|
99
103
|
await fs.ensureDir(path.dirname(destFile));
|
|
100
104
|
await fs.copy(srcFile, destFile);
|
|
101
105
|
progressBar.update(i + 1, { filename: rel });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-template.js","sourceRoot":"","sources":["../src/copy-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,WAAW,MAAM,cAAc,CAAA;AAGtC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"copy-template.js","sourceRoot":"","sources":["../src/copy-template.ts"],"names":[],"mappings":"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"}
|
package/dist/install.d.ts
CHANGED
|
@@ -14,8 +14,8 @@ export declare function getPlaywrightInstallCommand(pm: PackageManager, browsers
|
|
|
14
14
|
*/
|
|
15
15
|
export declare function patchPackageJsonScripts(targetDir: string, pm: PackageManager): Promise<void>;
|
|
16
16
|
/**
|
|
17
|
-
* Run the project's `setup` script
|
|
18
|
-
*
|
|
17
|
+
* Run the project's `setup` script and optionally install the selected
|
|
18
|
+
* Playwright browsers afterward.
|
|
19
19
|
*/
|
|
20
20
|
export declare function runSetup(targetDir: string, pm: PackageManager, browsers: PlaywrightBrowser[]): Promise<void>;
|
|
21
21
|
//# sourceMappingURL=install.d.ts.map
|
package/dist/install.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAKrE,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAEzF;AAED,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,iBAAiB,EAAE,GAC5B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAKrC;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAUlG;AAyBD;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQlH"}
|
package/dist/install.js
CHANGED
|
@@ -35,7 +35,6 @@ function spawnOptions(targetDir) {
|
|
|
35
35
|
env: {
|
|
36
36
|
...process.env,
|
|
37
37
|
ADBLOCK: '1',
|
|
38
|
-
NODE_ENV: 'development',
|
|
39
38
|
DISABLE_OPENCOLLECTIVE: '1',
|
|
40
39
|
},
|
|
41
40
|
};
|
|
@@ -53,8 +52,8 @@ function runCommand(targetDir, command, args) {
|
|
|
53
52
|
});
|
|
54
53
|
}
|
|
55
54
|
/**
|
|
56
|
-
* Run the project's `setup` script
|
|
57
|
-
*
|
|
55
|
+
* Run the project's `setup` script and optionally install the selected
|
|
56
|
+
* Playwright browsers afterward.
|
|
58
57
|
*/
|
|
59
58
|
export async function runSetup(targetDir, pm, browsers) {
|
|
60
59
|
const { command, args } = getInstallCommand(pm);
|
package/dist/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-template-utils.d.ts","sourceRoot":"","sources":["../src/prepare-template-utils.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,0BAA0B,+DAAgE,CAAA;AAEvG,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,EAC7C,OAAO,SAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBnB;AAED,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,OAAO,EACzB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,GACxC,OAAO,CAET;AAED,wBAAsB,2BAA2B,CAC/C,kBAAkB,EAAE,MAAM,EAC1B,cAAc,GAAE,OAAO,YAA2B,GACjD,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"prepare-template-utils.d.ts","sourceRoot":"","sources":["../src/prepare-template-utils.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,0BAA0B,+DAAgE,CAAA;AAEvG,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,EAC7C,OAAO,SAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBnB;AAED,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,OAAO,EACzB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,GACxC,OAAO,CAET;AAED,wBAAsB,2BAA2B,CAC/C,kBAAkB,EAAE,MAAM,EAC1B,cAAc,GAAE,OAAO,YAA2B,GACjD,OAAO,CAAC,IAAI,CAAC,CA0Cf"}
|
|
@@ -23,29 +23,35 @@ export function shouldAbortOnFallbackSeed(usedFallbackSeed, inputHash, previousM
|
|
|
23
23
|
export async function verifyPreparedTemplateState(packageTemplateDir, collectFilesFn = collectFiles) {
|
|
24
24
|
const seededDbPath = path.join(packageTemplateDir, 'prisma', 'dev.db');
|
|
25
25
|
const staleNestedDbPath = path.join(packageTemplateDir, 'prisma', 'prisma', 'dev.db');
|
|
26
|
+
const packagedGitignorePath = path.join(packageTemplateDir, 'gitignore');
|
|
26
27
|
const packageEnvPath = path.join(packageTemplateDir, '.env');
|
|
27
|
-
const starterFeaturePath = path.join(packageTemplateDir, 'automation', 'features', 'base', 'login.feature');
|
|
28
28
|
const starterEnvironmentPath = path.join(packageTemplateDir, 'automation', 'config', 'environments', 'environments.json');
|
|
29
29
|
const starterLocatorMapPath = path.join(packageTemplateDir, 'automation', 'mapping', 'locator-map.json');
|
|
30
|
-
const
|
|
30
|
+
const reportsDir = path.join(packageTemplateDir, 'automation', 'reports');
|
|
31
|
+
const reportFiles = existsSync(reportsDir) ? await collectFilesFn(reportsDir) : [];
|
|
31
32
|
if (!existsSync(seededDbPath)) {
|
|
32
33
|
throw new Error(`Prepared template is missing ${seededDbPath}`);
|
|
33
34
|
}
|
|
34
35
|
if (existsSync(staleNestedDbPath)) {
|
|
35
36
|
throw new Error(`Prepared template still contains stale nested database ${staleNestedDbPath}`);
|
|
36
37
|
}
|
|
38
|
+
if (!existsSync(packagedGitignorePath)) {
|
|
39
|
+
throw new Error(`Prepared template is missing packaged gitignore ${packagedGitignorePath}`);
|
|
40
|
+
}
|
|
37
41
|
if (existsSync(packageEnvPath)) {
|
|
38
42
|
throw new Error(`Prepared template should not include ${packageEnvPath}`);
|
|
39
43
|
}
|
|
40
|
-
if (!existsSync(starterFeaturePath)) {
|
|
41
|
-
throw new Error(`Prepared template is missing starter automation feature ${starterFeaturePath}`);
|
|
42
|
-
}
|
|
43
44
|
if (!existsSync(starterEnvironmentPath)) {
|
|
44
45
|
throw new Error(`Prepared template is missing starter environments file ${starterEnvironmentPath}`);
|
|
45
46
|
}
|
|
46
47
|
if (!existsSync(starterLocatorMapPath)) {
|
|
47
48
|
throw new Error(`Prepared template is missing locator map ${starterLocatorMapPath}`);
|
|
48
49
|
}
|
|
50
|
+
const starterLocatorMap = await fs.readFile(starterLocatorMapPath, 'utf8');
|
|
51
|
+
const parsedStarterLocatorMap = JSON.parse(starterLocatorMap);
|
|
52
|
+
if (!Array.isArray(parsedStarterLocatorMap) || parsedStarterLocatorMap.length > 0) {
|
|
53
|
+
throw new Error(`Prepared template should include an empty locator map at ${starterLocatorMapPath}`);
|
|
54
|
+
}
|
|
49
55
|
if (reportFiles.length > 0) {
|
|
50
56
|
throw new Error(`Prepared template should not include report artifacts, found ${reportFiles.join(', ')}`);
|
|
51
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-template-utils.js","sourceRoot":"","sources":["../src/prepare-template-utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAA;AAQ/C,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,2BAA2B,EAAE,qBAAqB,CAAU,CAAA;AAEvG,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAW,EACX,SAA6C,EAC7C,OAAO,GAAG,GAAG;IAEb,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9D,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAEzE,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;YACjE,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,gBAAyB,EACzB,SAAiB,EACjB,gBAAyC;IAEzC,OAAO,gBAAgB,IAAI,gBAAgB,EAAE,SAAS,KAAK,SAAS,CAAA;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,kBAA0B,EAC1B,iBAAsC,YAAY;IAElD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACtE,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACrF,MAAM,
|
|
1
|
+
{"version":3,"file":"prepare-template-utils.js","sourceRoot":"","sources":["../src/prepare-template-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const SEEDED_TEMPLATE_PATHS: readonly ["prisma/dev.db", "automation/config/environments/environments.json"];
|
|
2
|
+
export declare function setSeededTemplateFilesTracked(content: string, tracked: boolean): string;
|
|
3
|
+
export declare function getEmptyEnvironmentsFileContent(): string;
|
|
4
|
+
export declare function getEmptyLocatorMapFileContent(): string;
|
|
5
|
+
//# sourceMappingURL=scaffold-gitignore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold-gitignore.d.ts","sourceRoot":"","sources":["../src/scaffold-gitignore.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,gFAAiF,CAAA;AAUnH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CASvF;AAED,wBAAgB,+BAA+B,IAAI,MAAM,CAExD;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export const SEEDED_TEMPLATE_PATHS = ['prisma/dev.db', 'automation/config/environments/environments.json'];
|
|
2
|
+
function trimTrailingBlankLines(lines) {
|
|
3
|
+
const trimmed = [...lines];
|
|
4
|
+
while (trimmed.length > 0 && trimmed[trimmed.length - 1] === '') {
|
|
5
|
+
trimmed.pop();
|
|
6
|
+
}
|
|
7
|
+
return trimmed;
|
|
8
|
+
}
|
|
9
|
+
export function setSeededTemplateFilesTracked(content, tracked) {
|
|
10
|
+
const managedLines = new Set(SEEDED_TEMPLATE_PATHS.flatMap(filePath => [filePath, `!${filePath}`]));
|
|
11
|
+
const lines = trimTrailingBlankLines(content.split(/\r?\n/)).filter(line => !managedLines.has(line.trim()));
|
|
12
|
+
for (const filePath of SEEDED_TEMPLATE_PATHS) {
|
|
13
|
+
lines.push(tracked ? `!${filePath}` : filePath);
|
|
14
|
+
}
|
|
15
|
+
return `${lines.join('\n')}\n`;
|
|
16
|
+
}
|
|
17
|
+
export function getEmptyEnvironmentsFileContent() {
|
|
18
|
+
return '{}\n';
|
|
19
|
+
}
|
|
20
|
+
export function getEmptyLocatorMapFileContent() {
|
|
21
|
+
return '[]\n';
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=scaffold-gitignore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold-gitignore.js","sourceRoot":"","sources":["../src/scaffold-gitignore.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,eAAe,EAAE,kDAAkD,CAAU,CAAA;AAEnH,SAAS,sBAAsB,CAAC,KAAe;IAC7C,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IAC1B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAChE,OAAO,CAAC,GAAG,EAAE,CAAA;IACf,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAAe,EAAE,OAAgB;IAC7E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;IACnG,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAE3G,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-templates-utils.d.ts","sourceRoot":"","sources":["../src/sync-templates-utils.ts"],"names":[],"mappings":"AAUA,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAG9E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const EXCLUDED_TEMPLATE_PATH_PREFIXES = [
|
|
2
|
+
'automation/features/',
|
|
3
|
+
'automation/locators/',
|
|
4
|
+
'automation/reports/',
|
|
5
|
+
];
|
|
6
|
+
function toPosixPath(value) {
|
|
7
|
+
return value.replace(/\\/g, '/');
|
|
8
|
+
}
|
|
9
|
+
export function shouldExcludeBundledTemplatePath(relativePath) {
|
|
10
|
+
const normalizedPath = toPosixPath(relativePath);
|
|
11
|
+
return EXCLUDED_TEMPLATE_PATH_PREFIXES.some(prefix => normalizedPath === prefix.slice(0, -1) || normalizedPath.startsWith(prefix));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=sync-templates-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-templates-utils.js","sourceRoot":"","sources":["../src/sync-templates-utils.ts"],"names":[],"mappings":"AAAA,MAAM,+BAA+B,GAAG;IACtC,sBAAsB;IACtB,sBAAsB;IACtB,qBAAqB;CACb,CAAA;AAEV,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,YAAoB;IACnE,MAAM,cAAc,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IAChD,OAAO,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;AACpI,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-appraisejs",
|
|
3
|
-
"version": "0.1.10-alpha.
|
|
3
|
+
"version": "0.1.10-alpha.10",
|
|
4
4
|
"description": "Scaffold a new AppraiseJS app in your directory",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Hasnat Jamil",
|
|
@@ -33,7 +33,9 @@
|
|
|
33
33
|
},
|
|
34
34
|
"files": [
|
|
35
35
|
"dist",
|
|
36
|
-
"templates"
|
|
36
|
+
"templates",
|
|
37
|
+
"templates/default/prisma/dev.db",
|
|
38
|
+
"templates/default/automation/config/environments/environments.json"
|
|
37
39
|
],
|
|
38
40
|
"scripts": {
|
|
39
41
|
"prepublishOnly": "npm run build",
|
|
@@ -42,8 +44,10 @@
|
|
|
42
44
|
"sync-templates": "tsx scripts/sync-templates.ts",
|
|
43
45
|
"test": "vitest run",
|
|
44
46
|
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
45
|
-
"publish
|
|
46
|
-
"publish:
|
|
47
|
+
"publish": "npm run build && npm publish",
|
|
48
|
+
"publish:alpha": "npm run build && npm publish --tag alpha",
|
|
49
|
+
"publish:beta": "npm run build && npm publish --tag beta",
|
|
50
|
+
"bump:alpha": "npm version prerelease --preid alpha"
|
|
47
51
|
},
|
|
48
52
|
"dependencies": {
|
|
49
53
|
"@inquirer/prompts": "^7.2.0",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"preparedAt": "2026-03-
|
|
3
|
-
"inputHash": "
|
|
2
|
+
"preparedAt": "2026-03-19T22:34:37.465Z",
|
|
3
|
+
"inputHash": "ecc616cfea2757477e4edc12bc66982dfd267f4a9d1c0e229fccbd470d9c833f",
|
|
4
4
|
"databasePath": "prisma/dev.db"
|
|
5
5
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -13,20 +13,20 @@ import { When, Then, CustomWorld, expect, SelectorName, resolveLocator, getEnvir
|
|
|
13
13
|
* @icon INPUT
|
|
14
14
|
*/
|
|
15
15
|
When(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
'the user fills in the {string} input field with value {string}',
|
|
17
|
+
async function (this: CustomWorld, elementName: SelectorName, value: string) {
|
|
18
|
+
const selector = await resolveLocator(this.page, elementName);
|
|
19
|
+
if (!selector) {
|
|
20
|
+
throw new Error(`Selector ${elementName} not found`);
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
await this.page.locator(selector).fill(value);
|
|
24
|
+
} catch (error) {
|
|
25
|
+
throw new Error(
|
|
26
|
+
`Failed to fill in the ${elementName} input field with value ${value}: ${error}`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
21
29
|
}
|
|
22
|
-
try {
|
|
23
|
-
await this.page.locator(selector).fill(value);
|
|
24
|
-
} catch (error) {
|
|
25
|
-
throw new Error(
|
|
26
|
-
`Failed to fill in the ${elementName} input field with value ${value}: ${error}`
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
30
|
);
|
|
31
31
|
|
|
32
32
|
/**
|
|
@@ -35,18 +35,18 @@ When(
|
|
|
35
35
|
* @icon INPUT
|
|
36
36
|
*/
|
|
37
37
|
When(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
'the user clears the {string} field',
|
|
39
|
+
async function (this: CustomWorld, elementName: SelectorName) {
|
|
40
|
+
const selector = await resolveLocator(this.page, elementName);
|
|
41
|
+
if (!selector) {
|
|
42
|
+
throw new Error(`Selector ${elementName} not found`);
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
await this.page.locator(selector).clear();
|
|
46
|
+
} catch (error) {
|
|
47
|
+
throw new Error(`Failed to clear the ${elementName} field: ${error}`);
|
|
48
|
+
}
|
|
48
49
|
}
|
|
49
|
-
}
|
|
50
50
|
);
|
|
51
51
|
|
|
52
52
|
/**
|
|
@@ -55,24 +55,24 @@ When(
|
|
|
55
55
|
* @icon INPUT
|
|
56
56
|
*/
|
|
57
57
|
When(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
'the user selects the {string} option of the {string} dropdown',
|
|
59
|
+
async function (
|
|
60
|
+
this: CustomWorld,
|
|
61
|
+
optionName: string,
|
|
62
|
+
elementName: SelectorName
|
|
63
|
+
) {
|
|
64
|
+
const selector = await resolveLocator(this.page, elementName);
|
|
65
|
+
if (!selector) {
|
|
66
|
+
throw new Error(`Selector ${elementName} not found`);
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
await this.page.locator(selector).selectOption(optionName);
|
|
70
|
+
} catch (error) {
|
|
71
|
+
throw new Error(
|
|
72
|
+
`Failed to select the ${optionName} option of the ${elementName} dropdown: ${error}`
|
|
73
|
+
);
|
|
74
|
+
}
|
|
67
75
|
}
|
|
68
|
-
try {
|
|
69
|
-
await this.page.locator(selector).selectOption(optionName);
|
|
70
|
-
} catch (error) {
|
|
71
|
-
throw new Error(
|
|
72
|
-
`Failed to select the ${optionName} option of the ${elementName} dropdown: ${error}`
|
|
73
|
-
);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
76
|
);
|
|
77
77
|
|
|
78
78
|
/**
|
|
@@ -81,18 +81,18 @@ When(
|
|
|
81
81
|
* @icon INPUT
|
|
82
82
|
*/
|
|
83
83
|
When(
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
84
|
+
'the user checks the {string} checkbox',
|
|
85
|
+
async function (this: CustomWorld, elementName: SelectorName) {
|
|
86
|
+
const selector = await resolveLocator(this.page, elementName);
|
|
87
|
+
if (!selector) {
|
|
88
|
+
throw new Error(`Selector ${elementName} not found`);
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
await this.page.locator(selector).check();
|
|
92
|
+
} catch (error) {
|
|
93
|
+
throw new Error(`Failed to check the ${elementName} checkbox: ${error}`);
|
|
94
|
+
}
|
|
94
95
|
}
|
|
95
|
-
}
|
|
96
96
|
);
|
|
97
97
|
|
|
98
98
|
/**
|
|
@@ -101,20 +101,20 @@ When(
|
|
|
101
101
|
* @icon INPUT
|
|
102
102
|
*/
|
|
103
103
|
When(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
'the user unchecks the {string} checkbox',
|
|
105
|
+
async function (this: CustomWorld, elementName: SelectorName) {
|
|
106
|
+
const selector = await resolveLocator(this.page, elementName);
|
|
107
|
+
if (!selector) {
|
|
108
|
+
throw new Error(`Selector ${elementName} not found`);
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
await this.page.locator(selector).uncheck();
|
|
112
|
+
} catch (error) {
|
|
113
|
+
throw new Error(
|
|
114
|
+
`Failed to uncheck the ${elementName} checkbox: ${error}`
|
|
115
|
+
);
|
|
116
|
+
}
|
|
109
117
|
}
|
|
110
|
-
try {
|
|
111
|
-
await this.page.locator(selector).uncheck();
|
|
112
|
-
} catch (error) {
|
|
113
|
-
throw new Error(
|
|
114
|
-
`Failed to uncheck the ${elementName} checkbox: ${error}`
|
|
115
|
-
);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
118
|
);
|
|
119
119
|
|
|
120
120
|
/**
|
|
@@ -123,24 +123,24 @@ When(
|
|
|
123
123
|
* @icon INPUT
|
|
124
124
|
*/
|
|
125
125
|
When(
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
126
|
+
'the user fills in the {string} input with data from the stored variable {string}',
|
|
127
|
+
async function (
|
|
128
|
+
this: CustomWorld,
|
|
129
|
+
fieldName: SelectorName,
|
|
130
|
+
variableName: string
|
|
131
|
+
) {
|
|
132
|
+
const value = this.getVar<string>(variableName);
|
|
133
|
+
if (!value) {
|
|
134
|
+
throw new Error(`Variable ${variableName} not found`);
|
|
135
|
+
}
|
|
136
|
+
const selector = await resolveLocator(this.page, fieldName);
|
|
137
|
+
if (!selector) {
|
|
138
|
+
throw new Error(`Selector ${fieldName} not found`);
|
|
139
|
+
}
|
|
140
|
+
try {
|
|
141
|
+
await this.page.locator(selector).fill(value);
|
|
142
|
+
} catch (error) {
|
|
143
|
+
throw new Error(`Failed to fill in the ${fieldName} input field with data from the stored variable ${variableName}: ${error}`);
|
|
144
|
+
}
|
|
144
145
|
}
|
|
145
|
-
}
|
|
146
146
|
);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
|
2
|
+
|
|
3
|
+
# dependencies
|
|
4
|
+
/node_modules
|
|
5
|
+
/.pnp
|
|
6
|
+
.pnp.*
|
|
7
|
+
.yarn/*
|
|
8
|
+
!.yarn/patches
|
|
9
|
+
!.yarn/plugins
|
|
10
|
+
!.yarn/releases
|
|
11
|
+
!.yarn/versions
|
|
12
|
+
|
|
13
|
+
# testing
|
|
14
|
+
/coverage
|
|
15
|
+
|
|
16
|
+
# next.js
|
|
17
|
+
/.next/
|
|
18
|
+
/out/
|
|
19
|
+
|
|
20
|
+
# production
|
|
21
|
+
/build
|
|
22
|
+
|
|
23
|
+
# misc
|
|
24
|
+
.DS_Store
|
|
25
|
+
*.pem
|
|
26
|
+
|
|
27
|
+
# debug
|
|
28
|
+
npm-debug.log*
|
|
29
|
+
yarn-debug.log*
|
|
30
|
+
yarn-error.log*
|
|
31
|
+
.pnpm-debug.log*
|
|
32
|
+
|
|
33
|
+
# env files (can opt-in for committing if needed)
|
|
34
|
+
.env*
|
|
35
|
+
!.env.example
|
|
36
|
+
!**/.env.example
|
|
37
|
+
|
|
38
|
+
# database files
|
|
39
|
+
*.db
|
|
40
|
+
*.sqlite
|
|
41
|
+
*.sqlite3
|
|
42
|
+
|
|
43
|
+
# vercel
|
|
44
|
+
.vercel
|
|
45
|
+
|
|
46
|
+
# typescript
|
|
47
|
+
*.tsbuildinfo
|
|
48
|
+
next-env.d.ts
|
|
49
|
+
|
|
50
|
+
automation/reports/*
|
|
51
|
+
packages/cucumber-runtime/dist/*
|
|
52
|
+
|
|
53
|
+
# temporary files
|
|
54
|
+
.tmp
|
|
55
|
+
!prisma/dev.db
|
|
56
|
+
!automation/config/environments/environments.json
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { NextConfig } from 'next'
|
|
2
2
|
|
|
3
|
-
const disableDevtools =
|
|
4
|
-
process.env.DISABLE_DEVTOOLS === '1' ||
|
|
5
|
-
process.env.DISABLE_DEVTOOLS === 'true'
|
|
3
|
+
const disableDevtools = process.env.DISABLE_DEVTOOLS === '1' || process.env.DISABLE_DEVTOOLS === 'true'
|
|
6
4
|
|
|
7
5
|
const nextConfig: NextConfig = {
|
|
8
6
|
...(disableDevtools && {
|