@itmetsam/samurai-framework 0.7.1 → 0.9.0
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/README.md +31 -12
- package/dist/api.d.ts +1 -0
- package/dist/api.js +1 -0
- package/dist/browser/browser-finder.js +2 -2
- package/dist/browser/browser.d.ts +11 -15
- package/dist/browser/browser.js +79 -58
- package/dist/browser/chrome-launch.d.ts +57 -0
- package/dist/browser/chrome-launch.js +127 -0
- package/dist/browser/download-folders.d.ts +27 -0
- package/dist/browser/download-folders.js +97 -0
- package/dist/browser/file-chooser.d.ts +4 -3
- package/dist/browser/file-chooser.js +9 -8
- package/dist/browser/generated-files.d.ts +30 -0
- package/dist/browser/generated-files.js +116 -0
- package/dist/browser/page-logs.d.ts +2 -0
- package/dist/browser/page-logs.js +25 -5
- package/dist/browser/page.d.ts +37 -0
- package/dist/browser/page.js +129 -2
- package/dist/browser/screenshot.js +16 -2
- package/dist/browser/session-capabilities.d.ts +12 -0
- package/dist/browser/session-capabilities.js +8 -0
- package/dist/browsers/index.d.ts +2 -2
- package/dist/browsers/index.js +2 -2
- package/dist/browsers/overrides.d.ts +2 -0
- package/dist/browsers/overrides.js +2 -0
- package/dist/browsers/pins.d.ts +1 -1
- package/dist/browsers/pins.js +2 -2
- package/dist/browsers/resolve.d.ts +2 -0
- package/dist/browsers/resolve.js +14 -2
- package/dist/browsers/store.d.ts +2 -0
- package/dist/browsers/store.js +8 -0
- package/dist/cli/main.d.ts +1 -1
- package/dist/cli/main.js +20 -5
- package/dist/locator/locator.d.ts +17 -5
- package/dist/locator/locator.js +77 -10
- package/dist/network/data-collector.d.ts +1 -0
- package/dist/network/data-collector.js +23 -5
- package/dist/network/network-tracker.d.ts +8 -1
- package/dist/network/network-tracker.js +42 -3
- package/dist/network/router.d.ts +5 -0
- package/dist/network/router.js +33 -11
- package/dist/project/files-store.d.ts +28 -0
- package/dist/project/files-store.js +106 -0
- package/dist/project/index.d.ts +1 -0
- package/dist/project/index.js +1 -0
- package/dist/recorder/apply.js +8 -6
- package/dist/recorder/files-capture.d.ts +26 -0
- package/dist/recorder/files-capture.js +92 -0
- package/dist/recorder/files-reader.d.ts +7 -0
- package/dist/recorder/files-reader.js +25 -0
- package/dist/recorder/index.d.ts +1 -1
- package/dist/recorder/index.js +1 -1
- package/dist/recorder/normalise.d.ts +26 -2
- package/dist/recorder/normalise.js +48 -1
- package/dist/recorder/recorder.d.ts +38 -0
- package/dist/recorder/recorder.js +160 -1
- package/dist/recorder/session.d.ts +14 -1
- package/dist/recorder/session.js +36 -9
- package/dist/recorder/toolbar/controller.d.ts +15 -5
- package/dist/recorder/toolbar/controller.js +61 -7
- package/dist/recorder/toolbar/protocol.d.ts +10 -0
- package/dist/recorder/toolbar/source.d.ts +1 -1
- package/dist/recorder/toolbar/source.js +35 -2
- package/dist/recorder/toolbar/styles.d.ts +1 -1
- package/dist/recorder/toolbar/styles.js +31 -0
- package/dist/runner/project.js +2 -0
- package/dist/script/preload.js +65 -0
- package/dist/steps/edit.js +38 -3
- package/dist/steps/emit.d.ts +3 -1
- package/dist/steps/emit.js +19 -0
- package/dist/steps/files.d.ts +8 -0
- package/dist/steps/files.js +33 -0
- package/dist/steps/index.d.ts +3 -2
- package/dist/steps/index.js +2 -1
- package/dist/steps/model.d.ts +28 -0
- package/dist/steps/parse.js +79 -0
- package/dist/transport/bidi-connection.d.ts +6 -0
- package/dist/transport/bidi-connection.js +13 -0
- package/dist/types/browser.d.ts +1 -1
- package/dist/types/config.d.ts +7 -2
- package/package.json +3 -2
- package/dist/browser/file-paths.d.ts +0 -4
- package/dist/browser/file-paths.js +0 -18
package/dist/types/config.d.ts
CHANGED
|
@@ -45,8 +45,8 @@ export interface SamuraiTestConfig {
|
|
|
45
45
|
*/
|
|
46
46
|
srcDir?: string;
|
|
47
47
|
/**
|
|
48
|
-
* The browser to use for all tests
|
|
49
|
-
*
|
|
48
|
+
* The browser to use for all tests: "firefox" or "chrome"
|
|
49
|
+
* @default "firefox"
|
|
50
50
|
*/
|
|
51
51
|
browser?: SupportedBrowser;
|
|
52
52
|
/**
|
|
@@ -96,6 +96,11 @@ export interface SamuraiTestConfig {
|
|
|
96
96
|
* @default "result/downloads"
|
|
97
97
|
*/
|
|
98
98
|
downloadsDir?: string;
|
|
99
|
+
/**
|
|
100
|
+
* Folder, relative to the project folder, where recorded uploads are stored and committed with the tests
|
|
101
|
+
* @default "files"
|
|
102
|
+
*/
|
|
103
|
+
filesDir?: string;
|
|
99
104
|
/** How pages are opened */
|
|
100
105
|
use?: {
|
|
101
106
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itmetsam/samurai-framework",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Browser test framework over WebDriver BiDi: auto-waiting locators, environments and secrets, a recorder, and a command line.",
|
|
5
5
|
"main": "dist/api.js",
|
|
6
6
|
"exports": {
|
|
@@ -54,7 +54,8 @@
|
|
|
54
54
|
"dev": "tsx src/index.ts",
|
|
55
55
|
"build": "rm -rf dist && tsc -p tsconfig.build.json && node scripts/copy-types.mjs",
|
|
56
56
|
"test": "tsx --test --test-timeout=10000 \"src/**/*.test.ts\"",
|
|
57
|
-
"test:browser": "tsx --test --test-concurrency=1 \"src/**/*.browser-test.ts\"",
|
|
57
|
+
"test:browser": "tsx --test --test-concurrency=1 --test-timeout=60000 \"src/**/*.browser-test.ts\"",
|
|
58
|
+
"test:browser:chrome": "SAMURAI_TEST_BROWSER=chrome npm run test:browser",
|
|
58
59
|
"test:cli": "tsx --test --test-concurrency=1 \"src/**/*.cli-test.ts\""
|
|
59
60
|
},
|
|
60
61
|
"keywords": [
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/** Absolute paths for `files` (relative ones resolve against the working directory) */
|
|
2
|
-
export declare function resolveFiles(files: string | string[]): string[];
|
|
3
|
-
/** Throws unless `file` is an existing regular file; `operation` names the caller in the message */
|
|
4
|
-
export declare function assertIsFile(file: string, operation: string): Promise<void>;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { stat } from "node:fs/promises";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
/** Absolute paths for `files` (relative ones resolve against the working directory) */
|
|
4
|
-
export function resolveFiles(files) {
|
|
5
|
-
return (Array.isArray(files) ? files : [files]).map((file) => path.resolve(file));
|
|
6
|
-
}
|
|
7
|
-
/** Throws unless `file` is an existing regular file; `operation` names the caller in the message */
|
|
8
|
-
export async function assertIsFile(file, operation) {
|
|
9
|
-
let info;
|
|
10
|
-
try {
|
|
11
|
-
info = await stat(file);
|
|
12
|
-
}
|
|
13
|
-
catch {
|
|
14
|
-
throw new Error(`${operation}(): file not found: ${file}`);
|
|
15
|
-
}
|
|
16
|
-
if (!info.isFile())
|
|
17
|
-
throw new Error(`${operation}(): not a file: ${file}`);
|
|
18
|
-
}
|