apify-test-tools 0.10.2-beta.1 → 0.10.2-beta.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/.gitattributes +2 -0
- package/.github/actions/checkout-restore-dependencies/action.yaml +64 -27
- package/.github/cli/apify-test-tools.mjs +360 -0
- package/.github/scripts/check-major-tag-refs.mjs +1 -1
- package/.github/scripts/mask-config-secrets.sh +17 -0
- package/.github/scripts/run-with-apify-tokens.mjs +37 -12
- package/.github/workflows/_check_code.yaml +25 -0
- package/.github/workflows/_move_major_tag.yaml +3 -81
- package/.github/workflows/_tests.yaml +34 -0
- package/.github/workflows/_update_release_metadata.yaml +0 -12
- package/.github/workflows/manual_move_major_tag.yaml +3 -3
- package/.github/workflows/manual_release_stable.yaml +3 -13
- package/.github/workflows/on_master.yaml +9 -5
- package/.github/workflows/on_pull_request.yaml +3 -48
- package/.github/workflows/public_platform-tests-claude-investigate-and-fix.yaml +13 -2
- package/.github/workflows/public_platform-tests.yaml +24 -1
- package/.github/workflows/public_pr-build-test.yaml +61 -25
- package/.github/workflows/public_push-build-latest.yaml +41 -8
- package/.husky/pre-commit +5 -0
- package/.prettierignore +3 -0
- package/CHANGELOG.md +16 -0
- package/CONTRIBUTING.md +105 -21
- package/README.md +218 -600
- package/bin/affected-actors.ts +198 -0
- package/bin/build-from-local.ts +65 -13
- package/bin/build.ts +123 -41
- package/bin/diff-changes.ts +32 -23
- package/bin/diff-json-schema.ts +5 -6
- package/bin/git.ts +69 -99
- package/bin/main.ts +96 -135
- package/bin/slack.ts +43 -10
- package/bin/stdin-input.ts +65 -0
- package/bin/test-report.ts +6 -9
- package/bin/types.ts +15 -0
- package/dist/bin/affected-actors.d.ts +46 -0
- package/dist/bin/affected-actors.d.ts.map +1 -0
- package/dist/bin/affected-actors.js +135 -0
- package/dist/bin/affected-actors.js.map +1 -0
- package/dist/bin/build-from-local.d.ts +12 -3
- package/dist/bin/build-from-local.d.ts.map +1 -1
- package/dist/bin/build-from-local.js +34 -12
- package/dist/bin/build-from-local.js.map +1 -1
- package/dist/bin/build.d.ts +30 -7
- package/dist/bin/build.d.ts.map +1 -1
- package/dist/bin/build.js +85 -26
- package/dist/bin/build.js.map +1 -1
- package/dist/bin/diff-changes.d.ts +11 -4
- package/dist/bin/diff-changes.d.ts.map +1 -1
- package/dist/bin/diff-changes.js +19 -19
- package/dist/bin/diff-changes.js.map +1 -1
- package/dist/bin/diff-json-schema.d.ts +2 -2
- package/dist/bin/diff-json-schema.d.ts.map +1 -1
- package/dist/bin/diff-json-schema.js +1 -4
- package/dist/bin/diff-json-schema.js.map +1 -1
- package/dist/bin/git.d.ts +23 -21
- package/dist/bin/git.d.ts.map +1 -1
- package/dist/bin/git.js +60 -83
- package/dist/bin/git.js.map +1 -1
- package/dist/bin/main.js +82 -105
- package/dist/bin/main.js.map +1 -1
- package/dist/bin/slack.d.ts +14 -4
- package/dist/bin/slack.d.ts.map +1 -1
- package/dist/bin/slack.js +39 -6
- package/dist/bin/slack.js.map +1 -1
- package/dist/bin/stdin-input.d.ts +17 -0
- package/dist/bin/stdin-input.d.ts.map +1 -0
- package/dist/bin/stdin-input.js +54 -0
- package/dist/bin/stdin-input.js.map +1 -0
- package/dist/bin/test-report.d.ts.map +1 -1
- package/dist/bin/test-report.js +6 -8
- package/dist/bin/test-report.js.map +1 -1
- package/dist/bin/types.d.ts +13 -0
- package/dist/bin/types.d.ts.map +1 -1
- package/dist/lib/extend-expect.d.ts.map +1 -1
- package/dist/lib/extend-expect.js +37 -218
- package/dist/lib/extend-expect.js.map +1 -1
- package/dist/lib/lib.d.ts +1 -2
- package/dist/lib/lib.d.ts.map +1 -1
- package/dist/lib/lib.js +15 -22
- package/dist/lib/lib.js.map +1 -1
- package/dist/lib/run-checks.d.ts +14 -0
- package/dist/lib/run-checks.d.ts.map +1 -0
- package/dist/lib/run-checks.js +82 -0
- package/dist/lib/run-checks.js.map +1 -0
- package/dist/lib/run-test-result.d.ts +3 -6
- package/dist/lib/run-test-result.d.ts.map +1 -1
- package/dist/lib/run-test-result.js +41 -54
- package/dist/lib/run-test-result.js.map +1 -1
- package/dist/test/bundle/cli-bundle.test.d.ts +2 -0
- package/dist/test/bundle/cli-bundle.test.d.ts.map +1 -0
- package/dist/test/bundle/cli-bundle.test.js +190 -0
- package/dist/test/bundle/cli-bundle.test.js.map +1 -0
- package/dist/test/e2e/cli-bundle.e2e.test.d.ts +2 -0
- package/dist/test/e2e/cli-bundle.e2e.test.d.ts.map +1 -0
- package/dist/test/e2e/cli-bundle.e2e.test.js +138 -0
- package/dist/test/e2e/cli-bundle.e2e.test.js.map +1 -0
- package/dist/test/e2e/git-build-release.e2e.test.d.ts +2 -0
- package/dist/test/e2e/git-build-release.e2e.test.d.ts.map +1 -0
- package/dist/test/e2e/git-build-release.e2e.test.js +87 -0
- package/dist/test/e2e/git-build-release.e2e.test.js.map +1 -0
- package/dist/test/e2e/helpers.d.ts +37 -0
- package/dist/test/e2e/helpers.d.ts.map +1 -0
- package/dist/test/e2e/helpers.js +57 -0
- package/dist/test/e2e/helpers.js.map +1 -0
- package/dist/test/unit/bin/affected-actors-cli.test.d.ts +2 -0
- package/dist/test/unit/bin/affected-actors-cli.test.d.ts.map +1 -0
- package/dist/test/unit/bin/affected-actors-cli.test.js +167 -0
- package/dist/test/unit/bin/affected-actors-cli.test.js.map +1 -0
- package/dist/test/unit/bin/affected-actors.test.d.ts +2 -0
- package/dist/test/unit/bin/affected-actors.test.d.ts.map +1 -0
- package/dist/test/unit/bin/affected-actors.test.js +141 -0
- package/dist/test/unit/bin/affected-actors.test.js.map +1 -0
- package/dist/test/unit/bin/build-cli.test.d.ts +2 -0
- package/dist/test/unit/bin/build-cli.test.d.ts.map +1 -0
- package/dist/test/unit/bin/build-cli.test.js +44 -0
- package/dist/test/unit/bin/build-cli.test.js.map +1 -0
- package/dist/test/unit/bin/build-from-local.test.js +65 -1
- package/dist/test/unit/bin/build-from-local.test.js.map +1 -1
- package/dist/test/unit/bin/build.test.js +223 -3
- package/dist/test/unit/bin/build.test.js.map +1 -1
- package/dist/test/unit/bin/compiled-cli.d.ts +6 -0
- package/dist/test/unit/bin/compiled-cli.d.ts.map +1 -0
- package/dist/test/unit/bin/compiled-cli.js +16 -0
- package/dist/test/unit/bin/compiled-cli.js.map +1 -0
- package/dist/test/unit/bin/diff-changes.test.js +130 -101
- package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
- package/dist/test/unit/bin/diff.test.js +25 -28
- package/dist/test/unit/bin/diff.test.js.map +1 -1
- package/dist/test/unit/bin/git.test.js +69 -152
- package/dist/test/unit/bin/git.test.js.map +1 -1
- package/dist/test/unit/bin/slack.test.d.ts +2 -0
- package/dist/test/unit/bin/slack.test.d.ts.map +1 -0
- package/dist/test/unit/bin/slack.test.js +71 -0
- package/dist/test/unit/bin/slack.test.js.map +1 -0
- package/dist/test/unit/bin/stdin-input.test.d.ts +2 -0
- package/dist/test/unit/bin/stdin-input.test.d.ts.map +1 -0
- package/dist/test/unit/bin/stdin-input.test.js +50 -0
- package/dist/test/unit/bin/stdin-input.test.js.map +1 -0
- package/dist/test/unit/github-scripts/mask-config-secrets.test.d.ts +2 -0
- package/dist/test/unit/github-scripts/mask-config-secrets.test.d.ts.map +1 -0
- package/dist/test/unit/github-scripts/mask-config-secrets.test.js +50 -0
- package/dist/test/unit/github-scripts/mask-config-secrets.test.js.map +1 -0
- package/dist/test/unit/github-scripts/run-with-apify-tokens.test.d.ts +2 -0
- package/dist/test/unit/github-scripts/run-with-apify-tokens.test.d.ts.map +1 -0
- package/dist/test/unit/github-scripts/run-with-apify-tokens.test.js +102 -0
- package/dist/test/unit/github-scripts/run-with-apify-tokens.test.js.map +1 -0
- package/dist/test/unit/run-checks.test.d.ts +2 -0
- package/dist/test/unit/run-checks.test.d.ts.map +1 -0
- package/dist/test/unit/run-checks.test.js +62 -0
- package/dist/test/unit/run-checks.test.js.map +1 -0
- package/dist/test/unit/run-test-result.test.d.ts +2 -0
- package/dist/test/unit/run-test-result.test.d.ts.map +1 -0
- package/dist/test/unit/run-test-result.test.js +34 -0
- package/dist/test/unit/run-test-result.test.js.map +1 -0
- package/dist/test/unit/should-built-and-test.test.js +41 -38
- package/dist/test/unit/should-built-and-test.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/cli.md +373 -0
- package/docs/lib.md +271 -0
- package/docs/workflows.md +367 -0
- package/lib/extend-expect.ts +48 -258
- package/lib/lib.ts +24 -28
- package/lib/run-checks.ts +101 -0
- package/lib/run-test-result.ts +45 -55
- package/package.json +13 -3
- package/test/bundle/cli-bundle.test.ts +235 -0
- package/test/e2e/cli-bundle.e2e.test.ts +207 -0
- package/test/e2e/git-build-release.e2e.test.ts +113 -0
- package/test/e2e/helpers.ts +82 -0
- package/test/unit/bin/affected-actors-cli.test.ts +201 -0
- package/test/unit/bin/affected-actors.test.ts +182 -0
- package/test/unit/bin/build-cli.test.ts +55 -0
- package/test/unit/bin/build-from-local.test.ts +71 -0
- package/test/unit/bin/build.test.ts +279 -3
- package/test/unit/bin/compiled-cli.ts +17 -0
- package/test/unit/bin/diff-changes.test.ts +139 -101
- package/test/unit/bin/diff.test.ts +25 -28
- package/test/unit/bin/git.test.ts +85 -176
- package/test/unit/bin/slack.test.ts +84 -0
- package/test/unit/bin/stdin-input.test.ts +61 -0
- package/test/unit/github-scripts/mask-config-secrets.test.ts +61 -0
- package/test/unit/github-scripts/run-with-apify-tokens.test.ts +115 -0
- package/test/unit/run-checks.test.ts +76 -0
- package/test/unit/run-test-result.test.ts +44 -0
- package/test/unit/should-built-and-test.test.ts +46 -39
- package/.github/scripts/check-package-version-bump.mjs +0 -74
- package/.github/workflows-package-version +0 -1
package/.gitattributes
ADDED
|
@@ -8,6 +8,11 @@ inputs:
|
|
|
8
8
|
generated .npmrc references), and only on the dependency install steps, so it
|
|
9
9
|
never reaches the build or test steps. Use a read-only token.
|
|
10
10
|
required: false
|
|
11
|
+
config-secrets:
|
|
12
|
+
description: >-
|
|
13
|
+
The CONFIG_SECRETS workflow secret, if the caller passed one. Every value inside it is
|
|
14
|
+
registered as a mask, see .github/scripts/mask-config-secrets.sh.
|
|
15
|
+
required: false
|
|
11
16
|
|
|
12
17
|
outputs:
|
|
13
18
|
scripts-path:
|
|
@@ -19,11 +24,19 @@ outputs:
|
|
|
19
24
|
|
|
20
25
|
# Sets common steps and ensure we use cached node_modules
|
|
21
26
|
# To test a change here, repoint the `uses:` refs in the reusable workflows at your branch, and
|
|
22
|
-
# change them back before merging.
|
|
23
|
-
#
|
|
27
|
+
# change them back before merging. Consumers track the `workflows-v0` tag, which moves on every
|
|
28
|
+
# push to master.
|
|
24
29
|
runs:
|
|
25
30
|
using: 'composite'
|
|
26
31
|
steps:
|
|
32
|
+
# Runs before anything can use a packed secret, see the script for why.
|
|
33
|
+
- name: Mask config secrets
|
|
34
|
+
if: inputs.config-secrets != ''
|
|
35
|
+
shell: bash
|
|
36
|
+
env:
|
|
37
|
+
CONFIG_SECRETS: ${{ inputs.config-secrets }}
|
|
38
|
+
run: bash "${{ github.action_path }}/../../scripts/mask-config-secrets.sh"
|
|
39
|
+
|
|
27
40
|
- name: Checkout Repository
|
|
28
41
|
uses: actions/checkout@v5
|
|
29
42
|
with:
|
|
@@ -49,7 +62,24 @@ runs:
|
|
|
49
62
|
shell: bash
|
|
50
63
|
run: echo "path=$(cd "${{ github.action_path }}/../../scripts" && pwd)" >> "$GITHUB_OUTPUT"
|
|
51
64
|
|
|
65
|
+
# A repo is on pnpm when it has a pnpm-lock.yaml and no package-lock.json.
|
|
66
|
+
- name: Detect package manager
|
|
67
|
+
id: package-manager
|
|
68
|
+
shell: bash
|
|
69
|
+
run: |
|
|
70
|
+
if [ -f pnpm-lock.yaml ] && [ ! -f package-lock.json ]; then
|
|
71
|
+
echo "name=pnpm" >> "$GITHUB_OUTPUT"
|
|
72
|
+
else
|
|
73
|
+
echo "name=npm" >> "$GITHUB_OUTPUT"
|
|
74
|
+
fi
|
|
75
|
+
|
|
76
|
+
# Takes the pnpm version from the `packageManager` field of the repo's package.json.
|
|
77
|
+
- name: Install pnpm
|
|
78
|
+
if: steps.package-manager.outputs.name == 'pnpm'
|
|
79
|
+
uses: pnpm/action-setup@v6
|
|
80
|
+
|
|
52
81
|
- name: Cache dependencies npm
|
|
82
|
+
if: steps.package-manager.outputs.name == 'npm'
|
|
53
83
|
id: check-dependencies-cache
|
|
54
84
|
uses: actions/cache@v5
|
|
55
85
|
with:
|
|
@@ -57,39 +87,46 @@ runs:
|
|
|
57
87
|
key: modules-npm-${{ hashFiles('package-lock.json') }}
|
|
58
88
|
|
|
59
89
|
- name: install npm dependencies
|
|
60
|
-
if: steps.check-dependencies-cache.outputs.cache-hit != 'true'
|
|
90
|
+
if: steps.package-manager.outputs.name == 'npm' && steps.check-dependencies-cache.outputs.cache-hit != 'true'
|
|
61
91
|
shell: bash
|
|
62
92
|
env:
|
|
63
93
|
NPM_TOKEN: ${{ inputs.npm-token }}
|
|
64
94
|
NODE_AUTH_TOKEN: ${{ inputs.npm-token }}
|
|
65
95
|
run: npm ci
|
|
66
96
|
|
|
67
|
-
#
|
|
68
|
-
#
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
97
|
+
# Caching node_modules would miss each workspace package's own node_modules, so we cache the
|
|
98
|
+
# store and always install; with a warm store that only links files.
|
|
99
|
+
- name: Resolve pnpm store path
|
|
100
|
+
if: steps.package-manager.outputs.name == 'pnpm'
|
|
101
|
+
id: pnpm-store
|
|
102
|
+
shell: bash
|
|
103
|
+
run: echo "path=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT"
|
|
104
|
+
|
|
105
|
+
- name: Cache pnpm store
|
|
106
|
+
if: steps.package-manager.outputs.name == 'pnpm'
|
|
107
|
+
uses: actions/cache@v5
|
|
108
|
+
with:
|
|
109
|
+
path: ${{ steps.pnpm-store.outputs.path }}
|
|
110
|
+
key: pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
|
|
111
|
+
|
|
112
|
+
- name: install pnpm dependencies
|
|
113
|
+
if: steps.package-manager.outputs.name == 'pnpm'
|
|
74
114
|
shell: bash
|
|
75
115
|
env:
|
|
76
116
|
NPM_TOKEN: ${{ inputs.npm-token }}
|
|
77
117
|
NODE_AUTH_TOKEN: ${{ inputs.npm-token }}
|
|
118
|
+
run: pnpm install --frozen-lockfile
|
|
119
|
+
|
|
120
|
+
# The CLI the workflows call ships with this action as one bundled file (npm run bundle), so
|
|
121
|
+
# nothing is installed for it. The repo's node_modules stays exactly what its lockfile says,
|
|
122
|
+
# and its tests import the lib from the version they locked.
|
|
123
|
+
# Steps call `apify-test-tools` without npx: npx would pick the repo's own copy in node_modules/.bin first.
|
|
124
|
+
- name: Put apify-test-tools CLI on PATH
|
|
125
|
+
shell: bash
|
|
78
126
|
run: |
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
# The workflows name the exact package version they ship with, so a tag is a complete
|
|
86
|
-
# statement: these workflows and this library. A frozen major tag then keeps
|
|
87
|
-
# installing what it was tested against however far the package moves on. A `>=`
|
|
88
|
-
# floor could not do that — being open-ended, it resolves to the newest release
|
|
89
|
-
# forever, so freezing the tag would freeze the workflow files but not their
|
|
90
|
-
# dependency. The stable release writes this file, so it always names a published
|
|
91
|
-
# version; the release that publishes X is the commit that pins X.
|
|
92
|
-
pinned_version=$(cat "${{ github.action_path }}/../../workflows-package-version")
|
|
93
|
-
echo "Installing apify-test-tools@$pinned_version (pinned by these workflows)"
|
|
94
|
-
npm install "apify-test-tools@$pinned_version" --no-save --audit=false --no-fund;
|
|
95
|
-
fi
|
|
127
|
+
bundle="$(cd "${{ github.action_path }}/../../cli" && pwd)/apify-test-tools.mjs"
|
|
128
|
+
bin_dir="$RUNNER_TEMP/apify-test-tools-bin"
|
|
129
|
+
mkdir -p "$bin_dir"
|
|
130
|
+
printf '#!/bin/sh\nexec node --no-warnings "%s" "$@"\n' "$bundle" > "$bin_dir/apify-test-tools"
|
|
131
|
+
chmod +x "$bin_dir/apify-test-tools"
|
|
132
|
+
echo "$bin_dir" >> "$GITHUB_PATH"
|