Commit ded129431ae for woocommerce
commit ded129431ae33f52cecfb92adf89642e6fba9053
Author: Vlad Olaru <vlad.olaru@automattic.com>
Date: Mon Sep 7 10:16:58 2026 +0300
Run Core API tests with usage tracking enabled (#68274)
* test: Run API tests with tracking enabled
Core API CI only exercised the default tracking-disabled state on pull requests, leaving tracking-specific behavior uncovered in PR, nightly, and release checks. The newer single-container setup path also did not forward the existing tracking flag into its CLI process.
Add a distinct required tracking-enabled API job, explicitly forward the setup flag, verify the persisted option before the suite runs, and guard event/report generation with an independent configuration test. Existing API variants and runtime behavior remain unchanged.
Refs #39112
* chore: Add tracking-enabled API test changelog
Record the new pull request, nightly, and release Core API coverage with usage tracking enabled in the WooCommerce plugin release metadata.
Refs #39112
* test: remove bespoke tracking CI validator
The tracking API job already fails before the suite when setup does not persist exact tracking consent. A package-specific generator validator duplicated generic CI job coverage and added a separate runner without direct precedent among existing API variants.
Remove the validator, its package script, and its independent CI job. Keep the required tracking-enabled API run and runtime consent guard unchanged.
Refs #39112
diff --git a/plugins/woocommerce/changelog/fix-39112-api-tests-tracking-enabled b/plugins/woocommerce/changelog/fix-39112-api-tests-tracking-enabled
new file mode 100644
index 00000000000..44de4468963
--- /dev/null
+++ b/plugins/woocommerce/changelog/fix-39112-api-tests-tracking-enabled
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Run Core API tests with usage tracking enabled in pull request, nightly, and release CI.
diff --git a/plugins/woocommerce/package.json b/plugins/woocommerce/package.json
index 27359d962ee..9a85c0e9e42 100644
--- a/plugins/woocommerce/package.json
+++ b/plugins/woocommerce/package.json
@@ -35,6 +35,7 @@
"env:e2e:restart": "pnpm wp-env:e2e destroy --force && pnpm wp-env:e2e start --update",
"env:e2e:start": "pnpm wp-env:e2e start --update",
"env:e2e:stop": "pnpm wp-env:e2e stop",
+ "env:e2e:tracking": "ENABLE_TRACKING=1 pnpm env:e2e:start",
"env:performance-init": "./tests/performance/bin/init-environment.sh",
"env:perf": "pnpm env:e2e:start && pnpm env:performance-init",
"env:restart": "pnpm env:dev:restart",
@@ -70,6 +71,7 @@
"test:api": "pnpm test:e2e:default --project=api",
"test:api:hpos-off": "pnpm test:e2e:with-env default-hpos-disabled --project=api-hpos-disabled",
"test:api:object-cache": "pnpm test:e2e:with-env default-object-cache --project=api",
+ "test:api:tracking": "test \"$(pnpm --silent wp-env:e2e run cli wp option get woocommerce_allow_tracking)\" = \"yes\" && pnpm test:api",
"test:e2e:core-serial": "pnpm test:e2e:default --project=core-serial",
"test:e2e:core-parallel": "pnpm test:e2e:default --project=core-parallel",
"test:e2e:default": "pnpm test:e2e:install && pnpm test:e2e:with-env default",
@@ -633,6 +635,42 @@
"allure": true
}
},
+ {
+ "name": "Core API tests (tracking enabled)",
+ "testType": "api",
+ "usesSharedPluginBuild": true,
+ "command": "test:api:tracking",
+ "optional": false,
+ "changes": [
+ "composer.json",
+ "composer.lock",
+ "i18n/**/*.php",
+ "includes/**/*.php",
+ "src/**/*.php",
+ "tests/e2e/bin/**",
+ "tests/e2e/tests/api-tests/**",
+ "tests/e2e/*.js",
+ "tests/e2e/*.sh",
+ ".wp-env.e2e.json",
+ "woocommerce.php",
+ "uninstall.php"
+ ],
+ "onlyForDependencies": [],
+ "testEnv": {
+ "start": "env:e2e:tracking --debug"
+ },
+ "events": [
+ "pull_request",
+ "nightly-checks",
+ "release-checks",
+ "core-api-tracking"
+ ],
+ "report": {
+ "resultsBlobName": "core-api-report-tracking-enabled",
+ "resultsPath": "tests/e2e/test-results",
+ "allure": true
+ }
+ },
{
"name": "Core API tests (HPOS:off)",
"testType": "api",
diff --git a/plugins/woocommerce/tests/e2e/bin/test-env-setup.sh b/plugins/woocommerce/tests/e2e/bin/test-env-setup.sh
index 18928818260..b3fd7811e72 100755
--- a/plugins/woocommerce/tests/e2e/bin/test-env-setup.sh
+++ b/plugins/woocommerce/tests/e2e/bin/test-env-setup.sh
@@ -16,7 +16,7 @@ if [ ! -z ${CI+y} ]; then
# Source from the e2e-test-bin directory mount; a single-file mount of this
# script can surface as an empty file under Docker gRPC FUSE.
$WP_ENV_CMD run --debug cli cp wp-content/plugins/e2e-test-bin/test-env-setup.sh test-env-setup-ci.sh
- $WP_ENV_CMD run --debug cli env -u CI WP_CLI_PREFIX= bash test-env-setup-ci.sh
+ $WP_ENV_CMD run --debug cli env -u CI WP_CLI_PREFIX= ENABLE_TRACKING="${ENABLE_TRACKING:-0}" bash test-env-setup-ci.sh
exit $?
fi