@wp-tester/config 0.0.4 → 0.1.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/dist/auto-mount.d.ts.map +1 -1
- package/dist/auto-mount.js +10 -1
- package/dist/auto-mount.js.map +1 -1
- package/dist/config.d.ts +15 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +298 -21
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/options/phpunit.js +11 -11
- package/dist/options/phpunit.js.map +1 -1
- package/dist/options/project-root.d.ts.map +1 -1
- package/dist/options/project-root.js +3 -2
- package/dist/options/project-root.js.map +1 -1
- package/dist/options/project-type-detect.d.ts +1 -1
- package/dist/options/project-type-detect.d.ts.map +1 -1
- package/dist/options/project-type-detect.js +2 -2
- package/dist/options/project-type-detect.js.map +1 -1
- package/dist/options/project-type.d.ts.map +1 -1
- package/dist/options/project-type.js +29 -5
- package/dist/options/project-type.js.map +1 -1
- package/dist/options/smoke-tests.d.ts.map +1 -1
- package/dist/options/smoke-tests.js +18 -6
- package/dist/options/smoke-tests.js.map +1 -1
- package/dist/phpunit.d.ts.map +1 -1
- package/dist/phpunit.js +14 -8
- package/dist/phpunit.js.map +1 -1
- package/dist/resolved-types.d.ts +22 -6
- package/dist/resolved-types.d.ts.map +1 -1
- package/dist/schema.json +1157 -1005
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/wp-tester-config.d.ts +153 -12
- package/dist/wp-tester-config.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/auto-mount.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-mount.d.ts","sourceRoot":"","sources":["../src/auto-mount.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,GACvB,KAAK,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"auto-mount.d.ts","sourceRoot":"","sources":["../src/auto-mount.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,GACvB,KAAK,GAAG,IAAI,CA2Bd"}
|
package/dist/auto-mount.js
CHANGED
|
@@ -23,8 +23,17 @@ export function getProjectRootMount(projectDir, projectType) {
|
|
|
23
23
|
hostPath: projectDir,
|
|
24
24
|
vfsPath: `/wordpress/wp-content/themes/${dirName}`,
|
|
25
25
|
};
|
|
26
|
+
case "wp-content":
|
|
27
|
+
return {
|
|
28
|
+
hostPath: projectDir,
|
|
29
|
+
vfsPath: "/wordpress/wp-content",
|
|
30
|
+
};
|
|
31
|
+
case "wordpress":
|
|
32
|
+
return {
|
|
33
|
+
hostPath: projectDir,
|
|
34
|
+
vfsPath: "/wordpress",
|
|
35
|
+
};
|
|
26
36
|
default:
|
|
27
|
-
// For wp-content, wordpress-install, or unknown types, no mount
|
|
28
37
|
return null;
|
|
29
38
|
}
|
|
30
39
|
}
|
package/dist/auto-mount.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-mount.js","sourceRoot":"","sources":["../src/auto-mount.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,mEAAmE;AACnE,gCAAgC;AAChC,qGAAqG;AAErG,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIhC;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,WAAwB;IAExB,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAErC,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO;gBACL,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,iCAAiC,OAAO,EAAE;aACpD,CAAC;QACJ,KAAK,OAAO;YACV,OAAO;gBACL,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,gCAAgC,OAAO,EAAE;aACnD,CAAC;QACJ;
|
|
1
|
+
{"version":3,"file":"auto-mount.js","sourceRoot":"","sources":["../src/auto-mount.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,mEAAmE;AACnE,gCAAgC;AAChC,qGAAqG;AAErG,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIhC;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,WAAwB;IAExB,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAErC,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO;gBACL,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,iCAAiC,OAAO,EAAE;aACpD,CAAC;QACJ,KAAK,OAAO;YACV,OAAO;gBACL,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,gCAAgC,OAAO,EAAE;aACnD,CAAC;QACJ,KAAK,YAAY;YACf,OAAO;gBACL,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,uBAAuB;aACjC,CAAC;QACJ,KAAK,WAAW;YACd,OAAO;gBACL,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,YAAY;aACtB,CAAC;QACJ;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { WPTesterConfig } from "./wp-tester-config.js";
|
|
2
2
|
import type { ResolvedWPTesterConfig } from "./resolved-types.js";
|
|
3
3
|
export type { WPTesterConfig } from "./wp-tester-config.js";
|
|
4
|
+
/**
|
|
5
|
+
* Get the actual working directory, accounting for tools like tsx that may change process.cwd()
|
|
6
|
+
* When running via npx or tsx, INIT_CWD contains the original directory where the command was invoked
|
|
7
|
+
*/
|
|
8
|
+
export declare function getWorkingDirectory(): string;
|
|
4
9
|
/**
|
|
5
10
|
* Resolve a path to an absolute path.
|
|
6
11
|
* If the path is already absolute, return it as-is.
|
|
@@ -24,6 +29,16 @@ export declare function writeConfigFile(config: WPTesterConfig, path?: string):
|
|
|
24
29
|
* @returns Absolute path to the config file
|
|
25
30
|
*/
|
|
26
31
|
export declare function getConfigPath(config: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* Normalize a config path to ensure it points to a file, not a directory.
|
|
34
|
+
* If the path is a directory, appends 'wp-tester.json' to it.
|
|
35
|
+
* Used by readConfigFile, resolveConfig, and the test watcher to handle
|
|
36
|
+
* directory paths passed via --config flag.
|
|
37
|
+
*
|
|
38
|
+
* @param configPath - Path to config file or directory (relative or absolute)
|
|
39
|
+
* @returns Absolute path to the config file
|
|
40
|
+
*/
|
|
41
|
+
export declare function normalizeConfigPath(configPath: string): string;
|
|
27
42
|
/**
|
|
28
43
|
* Get the config file directory path.
|
|
29
44
|
*
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAmG,MAAM,kBAAkB,CAAC;AAoBhK,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CA+B5D;AAED,wBAAgB,gBAAgB,IAAI,cAAc,CAiBjD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAOzD;AAED,wBAAsB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAU3E;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAc9D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,cAAc,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAWR;AA4MD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,GAAG,MAAM,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CAyMjC"}
|
package/dist/config.js
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { readFile, writeFile, access, constants as fsConstants } from "fs/promises";
|
|
2
|
-
import { existsSync } from "fs";
|
|
2
|
+
import { existsSync, statSync } from "fs";
|
|
3
3
|
import { join, dirname, resolve, isAbsolute } from "path";
|
|
4
4
|
import { fileURLToPath } from "url";
|
|
5
5
|
import { getProjectRootMount } from "./auto-mount.js";
|
|
6
6
|
import { detectProjectType } from "./options/project-type-detect.js";
|
|
7
|
+
/**
|
|
8
|
+
* Get the actual working directory, accounting for tools like tsx that may change process.cwd()
|
|
9
|
+
* When running via npx or tsx, INIT_CWD contains the original directory where the command was invoked
|
|
10
|
+
*/
|
|
11
|
+
export function getWorkingDirectory() {
|
|
12
|
+
return process.env.INIT_CWD || process.cwd();
|
|
13
|
+
}
|
|
7
14
|
/**
|
|
8
15
|
* Resolve a path to an absolute path.
|
|
9
16
|
* If the path is already absolute, return it as-is.
|
|
@@ -17,7 +24,7 @@ export function resolveAbsolute(path, baseDir) {
|
|
|
17
24
|
return isAbsolute(path) ? path : resolve(baseDir, path);
|
|
18
25
|
}
|
|
19
26
|
export function configPath() {
|
|
20
|
-
return join(
|
|
27
|
+
return join(getWorkingDirectory(), "wp-tester.json");
|
|
21
28
|
}
|
|
22
29
|
export function getSchemaPath(importMetaUrl) {
|
|
23
30
|
// For ESM in production (built files)
|
|
@@ -49,6 +56,7 @@ export function getSchemaPath(importMetaUrl) {
|
|
|
49
56
|
}
|
|
50
57
|
export function getDefaultConfig() {
|
|
51
58
|
return {
|
|
59
|
+
$schema: "https://raw.githubusercontent.com/bgrgicak/wp-tester/trunk/packages/config/src/schema.json",
|
|
52
60
|
environments: [
|
|
53
61
|
{
|
|
54
62
|
name: "Latest WordPress and PHP",
|
|
@@ -61,7 +69,6 @@ export function getDefaultConfig() {
|
|
|
61
69
|
},
|
|
62
70
|
],
|
|
63
71
|
tests: {},
|
|
64
|
-
reporters: ["default"],
|
|
65
72
|
};
|
|
66
73
|
}
|
|
67
74
|
export async function isConfigWritable() {
|
|
@@ -77,6 +84,8 @@ export async function readConfigFile(path) {
|
|
|
77
84
|
if (!path) {
|
|
78
85
|
path = configPath();
|
|
79
86
|
}
|
|
87
|
+
// Normalize the path (handles directory paths)
|
|
88
|
+
path = normalizeConfigPath(path);
|
|
80
89
|
const content = await readFile(path, "utf8");
|
|
81
90
|
return JSON.parse(content);
|
|
82
91
|
}
|
|
@@ -93,7 +102,38 @@ export async function writeConfigFile(config, path) {
|
|
|
93
102
|
* @returns Absolute path to the config file
|
|
94
103
|
*/
|
|
95
104
|
export function getConfigPath(config) {
|
|
96
|
-
|
|
105
|
+
// Expand tilde (~) to home directory
|
|
106
|
+
if (config.startsWith('~/') || config === '~') {
|
|
107
|
+
const homeDir = process.env.HOME || process.env.USERPROFILE;
|
|
108
|
+
if (!homeDir) {
|
|
109
|
+
throw new Error('Unable to resolve home directory');
|
|
110
|
+
}
|
|
111
|
+
config = config === '~' ? homeDir : join(homeDir, config.slice(2));
|
|
112
|
+
}
|
|
113
|
+
return isAbsolute(config) ? config : resolve(getWorkingDirectory(), config);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Normalize a config path to ensure it points to a file, not a directory.
|
|
117
|
+
* If the path is a directory, appends 'wp-tester.json' to it.
|
|
118
|
+
* Used by readConfigFile, resolveConfig, and the test watcher to handle
|
|
119
|
+
* directory paths passed via --config flag.
|
|
120
|
+
*
|
|
121
|
+
* @param configPath - Path to config file or directory (relative or absolute)
|
|
122
|
+
* @returns Absolute path to the config file
|
|
123
|
+
*/
|
|
124
|
+
export function normalizeConfigPath(configPath) {
|
|
125
|
+
const absolutePath = getConfigPath(configPath);
|
|
126
|
+
// Check if path is a directory (synchronous)
|
|
127
|
+
try {
|
|
128
|
+
const stats = statSync(absolutePath);
|
|
129
|
+
if (stats.isDirectory()) {
|
|
130
|
+
return join(absolutePath, 'wp-tester.json');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// If stat fails, assume it's a file path
|
|
135
|
+
}
|
|
136
|
+
return absolutePath;
|
|
97
137
|
}
|
|
98
138
|
/**
|
|
99
139
|
* Get the config file directory path.
|
|
@@ -116,7 +156,7 @@ export function getConfigDir(configPath) {
|
|
|
116
156
|
*/
|
|
117
157
|
export function getProjectDir(config, configPath) {
|
|
118
158
|
// Get base directory: config file location or cwd
|
|
119
|
-
const baseDir = configPath ? getConfigDir(configPath) :
|
|
159
|
+
const baseDir = configPath ? getConfigDir(configPath) : getWorkingDirectory();
|
|
120
160
|
// If projectHostPath is specified, resolve it relative to base directory
|
|
121
161
|
if (config.projectHostPath) {
|
|
122
162
|
return resolveAbsolute(config.projectHostPath, baseDir);
|
|
@@ -124,6 +164,134 @@ export function getProjectDir(config, configPath) {
|
|
|
124
164
|
// No projectHostPath specified, return base directory
|
|
125
165
|
return baseDir;
|
|
126
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Normalize a version spec (string or array) to an array of versions.
|
|
169
|
+
* @param spec - Version specification (single string or array)
|
|
170
|
+
* @returns Array of version strings
|
|
171
|
+
*/
|
|
172
|
+
function normalizeVersionSpec(spec) {
|
|
173
|
+
if (!spec) {
|
|
174
|
+
return [];
|
|
175
|
+
}
|
|
176
|
+
return Array.isArray(spec) ? spec : [spec];
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Generate a name for an expanded environment based on the original name
|
|
180
|
+
* and the specific PHP/WP versions.
|
|
181
|
+
* @param baseName - Original environment name (if any)
|
|
182
|
+
* @param phpVersion - PHP version for this combination (only if from matrix)
|
|
183
|
+
* @param wpVersion - WordPress version for this combination (only if from matrix)
|
|
184
|
+
* @param phpIsFromMatrix - Whether PHP version is from matrix expansion (not blueprint)
|
|
185
|
+
* @param wpIsFromMatrix - Whether WP version is from matrix expansion (not blueprint)
|
|
186
|
+
* @param isMatrix - Whether this is part of a matrix (multiple combinations)
|
|
187
|
+
* @returns Generated environment name
|
|
188
|
+
*/
|
|
189
|
+
function generateExpandedName(baseName, phpVersion, wpVersion, phpIsFromMatrix, wpIsFromMatrix, isMatrix) {
|
|
190
|
+
// If not a matrix expansion, keep the original name
|
|
191
|
+
if (!isMatrix) {
|
|
192
|
+
return baseName;
|
|
193
|
+
}
|
|
194
|
+
// Build version suffix - only include versions that are from the matrix
|
|
195
|
+
const parts = [];
|
|
196
|
+
if (phpVersion && phpIsFromMatrix) {
|
|
197
|
+
parts.push(`PHP ${phpVersion}`);
|
|
198
|
+
}
|
|
199
|
+
if (wpVersion && wpIsFromMatrix) {
|
|
200
|
+
parts.push(`WP ${wpVersion}`);
|
|
201
|
+
}
|
|
202
|
+
if (parts.length === 0) {
|
|
203
|
+
return baseName;
|
|
204
|
+
}
|
|
205
|
+
const versionSuffix = parts.join(", ");
|
|
206
|
+
return baseName ? `${baseName} (${versionSuffix})` : versionSuffix;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Expand environments with version arrays into multiple environments,
|
|
210
|
+
* one for each combination of PHP and WP versions.
|
|
211
|
+
*
|
|
212
|
+
* Rules:
|
|
213
|
+
* - If blueprint.preferredVersions.php is set, it overrides env.php (no matrix for PHP)
|
|
214
|
+
* - If blueprint.preferredVersions.wp is set, it overrides env.wp (no matrix for WP)
|
|
215
|
+
* - When arrays are provided for both php and wp, creates a full matrix of combinations
|
|
216
|
+
*
|
|
217
|
+
* @param environments - Original environments array
|
|
218
|
+
* @param projectDir - Project directory for resolving blueprint paths
|
|
219
|
+
* @returns Expanded environments array
|
|
220
|
+
*/
|
|
221
|
+
async function expandEnvironments(environments, projectDir) {
|
|
222
|
+
const expanded = [];
|
|
223
|
+
for (const env of environments) {
|
|
224
|
+
// Load blueprint if it's a string path (needed to check preferredVersions)
|
|
225
|
+
// If no blueprint is provided, use an empty object (defaults will be applied later)
|
|
226
|
+
let blueprint;
|
|
227
|
+
if (!env.blueprint) {
|
|
228
|
+
blueprint = {};
|
|
229
|
+
}
|
|
230
|
+
else if (typeof env.blueprint === "string") {
|
|
231
|
+
const blueprintPath = resolveAbsolute(env.blueprint, projectDir);
|
|
232
|
+
const blueprintContent = await readFile(blueprintPath, "utf-8");
|
|
233
|
+
blueprint = JSON.parse(blueprintContent);
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
blueprint = env.blueprint;
|
|
237
|
+
}
|
|
238
|
+
// Determine PHP versions to use
|
|
239
|
+
// Blueprint preferredVersions.php overrides environment-level php
|
|
240
|
+
// However, "latest" is treated as unspecified, allowing matrix expansion
|
|
241
|
+
const blueprintPhp = blueprint.preferredVersions?.php;
|
|
242
|
+
let phpVersions;
|
|
243
|
+
let phpIsFromMatrix;
|
|
244
|
+
if (blueprintPhp && blueprintPhp !== "latest") {
|
|
245
|
+
// Blueprint takes precedence - use only the blueprint version
|
|
246
|
+
phpVersions = [blueprintPhp];
|
|
247
|
+
phpIsFromMatrix = false; // Not from matrix, from blueprint
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
// Use environment-level versions
|
|
251
|
+
phpVersions = normalizeVersionSpec(env.php);
|
|
252
|
+
phpIsFromMatrix = true; // From matrix (env-level config)
|
|
253
|
+
}
|
|
254
|
+
// Determine WP versions to use
|
|
255
|
+
// Blueprint preferredVersions.wp overrides environment-level wp
|
|
256
|
+
// However, "latest" is treated as unspecified, allowing matrix expansion
|
|
257
|
+
const blueprintWp = blueprint.preferredVersions?.wp;
|
|
258
|
+
let wpVersions;
|
|
259
|
+
let wpIsFromMatrix;
|
|
260
|
+
if (blueprintWp && blueprintWp !== "latest") {
|
|
261
|
+
// Blueprint takes precedence - use only the blueprint version
|
|
262
|
+
wpVersions = [blueprintWp];
|
|
263
|
+
wpIsFromMatrix = false; // Not from matrix, from blueprint
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
// Use environment-level versions
|
|
267
|
+
wpVersions = normalizeVersionSpec(env.wp);
|
|
268
|
+
wpIsFromMatrix = true; // From matrix (env-level config)
|
|
269
|
+
}
|
|
270
|
+
// If no versions specified at either level, create a single environment
|
|
271
|
+
if (phpVersions.length === 0 && wpVersions.length === 0) {
|
|
272
|
+
expanded.push({ ...env });
|
|
273
|
+
continue;
|
|
274
|
+
}
|
|
275
|
+
// Ensure at least one version for each dimension (use empty string as placeholder for "not specified")
|
|
276
|
+
const phpList = phpVersions.length > 0 ? phpVersions : [""];
|
|
277
|
+
const wpList = wpVersions.length > 0 ? wpVersions : [""];
|
|
278
|
+
// Determine if this is a matrix (multiple combinations)
|
|
279
|
+
const isMatrix = phpList.length > 1 || wpList.length > 1;
|
|
280
|
+
// Create combinations
|
|
281
|
+
for (const phpVersion of phpList) {
|
|
282
|
+
for (const wpVersion of wpList) {
|
|
283
|
+
const expandedEnv = {
|
|
284
|
+
...env,
|
|
285
|
+
name: generateExpandedName(env.name, phpVersion || undefined, wpVersion || undefined, phpIsFromMatrix, wpIsFromMatrix, isMatrix),
|
|
286
|
+
_phpVersion: phpVersion || undefined,
|
|
287
|
+
_wpVersion: wpVersion || undefined,
|
|
288
|
+
};
|
|
289
|
+
expanded.push(expandedEnv);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
return expanded;
|
|
294
|
+
}
|
|
127
295
|
/**
|
|
128
296
|
* Resolve PHPUnit config paths and set default testMode
|
|
129
297
|
* @param tests - Tests configuration
|
|
@@ -137,6 +305,7 @@ function resolveTests(tests, projectDir) {
|
|
|
137
305
|
plugin: tests.plugin,
|
|
138
306
|
theme: tests.theme,
|
|
139
307
|
wp: tests.wp,
|
|
308
|
+
passWithNoTests: tests.passWithNoTests,
|
|
140
309
|
};
|
|
141
310
|
}
|
|
142
311
|
// Resolve PHPUnit config with absolute paths and default testMode
|
|
@@ -159,6 +328,7 @@ function resolveTests(tests, projectDir) {
|
|
|
159
328
|
theme: tests.theme,
|
|
160
329
|
wp: tests.wp,
|
|
161
330
|
phpunit: resolvedPhpunit,
|
|
331
|
+
passWithNoTests: tests.passWithNoTests,
|
|
162
332
|
};
|
|
163
333
|
}
|
|
164
334
|
/**
|
|
@@ -170,7 +340,8 @@ export async function resolveConfig(config) {
|
|
|
170
340
|
let resolvedConfig;
|
|
171
341
|
let configPath;
|
|
172
342
|
if (typeof config === "string") {
|
|
173
|
-
|
|
343
|
+
// Normalize the path (handles directory paths)
|
|
344
|
+
configPath = normalizeConfigPath(config);
|
|
174
345
|
const content = await readFile(configPath, "utf8");
|
|
175
346
|
resolvedConfig = JSON.parse(content);
|
|
176
347
|
}
|
|
@@ -182,14 +353,65 @@ export async function resolveConfig(config) {
|
|
|
182
353
|
// Get the project root directory (respects projectHostPath config option)
|
|
183
354
|
const projectDir = getProjectDir(resolvedConfig, configPath);
|
|
184
355
|
// Ensure projectType is set (detect if not provided)
|
|
185
|
-
|
|
186
|
-
//
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
356
|
+
// Skip detection if directory doesn't exist to avoid filesystem errors in tests
|
|
357
|
+
// that intentionally use invalid paths for error handling
|
|
358
|
+
let projectType = resolvedConfig.projectType;
|
|
359
|
+
if (!projectType && existsSync(projectDir)) {
|
|
360
|
+
try {
|
|
361
|
+
projectType = detectProjectType(projectDir);
|
|
362
|
+
}
|
|
363
|
+
catch {
|
|
364
|
+
// If detection fails (e.g., permission errors), default to 'other'
|
|
365
|
+
projectType = 'other';
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
else if (!projectType) {
|
|
369
|
+
// Directory doesn't exist, default to 'other'
|
|
370
|
+
projectType = 'other';
|
|
371
|
+
}
|
|
372
|
+
// Ensure reporters is set with defaults
|
|
373
|
+
// If no reporters configured, default to showing all test statuses
|
|
374
|
+
const defaultReporterOptions = {
|
|
375
|
+
passed: true,
|
|
376
|
+
failed: true,
|
|
377
|
+
skipped: true,
|
|
378
|
+
pending: true,
|
|
379
|
+
other: true,
|
|
380
|
+
};
|
|
381
|
+
const reporters = {
|
|
382
|
+
...(resolvedConfig.reporters ?? {}),
|
|
383
|
+
default: undefined, // Will be set below
|
|
384
|
+
};
|
|
385
|
+
// Normalize default reporter:
|
|
386
|
+
// - `true` or empty object `{}` -> apply default options (show all)
|
|
387
|
+
// - `false` -> disable default reporter (remove it)
|
|
388
|
+
// - object with options -> use as-is
|
|
389
|
+
const inputDefault = resolvedConfig.reporters?.default;
|
|
390
|
+
if (inputDefault === true || inputDefault === undefined || (typeof inputDefault === 'object' && Object.keys(inputDefault).length === 0)) {
|
|
391
|
+
// true, undefined, or empty object -> use defaults (show all)
|
|
392
|
+
if (inputDefault !== undefined || !resolvedConfig.reporters?.json) {
|
|
393
|
+
reporters.default = defaultReporterOptions;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
else if (inputDefault === false) {
|
|
397
|
+
// false -> disable default reporter
|
|
398
|
+
reporters.default = undefined;
|
|
399
|
+
}
|
|
400
|
+
else {
|
|
401
|
+
// Object with specific options -> use as-is
|
|
402
|
+
reporters.default = inputDefault;
|
|
403
|
+
}
|
|
404
|
+
// Expand environments with version arrays into multiple environments
|
|
405
|
+
const expandedEnvironments = await expandEnvironments(resolvedConfig.environments, projectDir);
|
|
406
|
+
// Resolve environments: convert ExpandedEnvironment[] to ResolvedEnvironment[]
|
|
407
|
+
const resolvedEnvironments = await Promise.all(expandedEnvironments.map(async (env) => {
|
|
190
408
|
// Resolve blueprint from string to BlueprintV1Declaration if needed
|
|
409
|
+
// If no blueprint is provided, use an empty object (defaults will be applied later)
|
|
191
410
|
let blueprint;
|
|
192
|
-
if (
|
|
411
|
+
if (!env.blueprint) {
|
|
412
|
+
blueprint = {};
|
|
413
|
+
}
|
|
414
|
+
else if (typeof env.blueprint === "string") {
|
|
193
415
|
const blueprintPath = resolveAbsolute(env.blueprint, projectDir);
|
|
194
416
|
const blueprintContent = await readFile(blueprintPath, "utf-8");
|
|
195
417
|
blueprint = JSON.parse(blueprintContent);
|
|
@@ -197,20 +419,44 @@ export async function resolveConfig(config) {
|
|
|
197
419
|
else {
|
|
198
420
|
blueprint = env.blueprint;
|
|
199
421
|
}
|
|
200
|
-
//
|
|
422
|
+
// Determine PHP version:
|
|
423
|
+
// 1. Use the expanded version from matrix (_phpVersion) if set
|
|
424
|
+
// 2. Otherwise use blueprint preferredVersions.php if set
|
|
425
|
+
// 3. Otherwise default to "latest"
|
|
426
|
+
const phpVersion = env._phpVersion || blueprint.preferredVersions?.php || "latest";
|
|
427
|
+
// Determine WP version:
|
|
428
|
+
// 1. Use the expanded version from matrix (_wpVersion) if set
|
|
429
|
+
// 2. Otherwise use blueprint preferredVersions.wp if set
|
|
430
|
+
// 3. Otherwise default to "latest"
|
|
431
|
+
const wpVersion = env._wpVersion || blueprint.preferredVersions?.wp || "latest";
|
|
432
|
+
// Create resolved blueprint with determined versions
|
|
433
|
+
// Type assertion is needed because the versions come from user config
|
|
434
|
+
// and TypeScript can't verify at compile time that they're valid.
|
|
435
|
+
// Invalid versions will be caught by WordPress Playground at runtime.
|
|
201
436
|
const resolvedBlueprint = {
|
|
202
437
|
...blueprint,
|
|
203
438
|
preferredVersions: {
|
|
204
|
-
php:
|
|
205
|
-
wp:
|
|
439
|
+
php: phpVersion,
|
|
440
|
+
wp: wpVersion,
|
|
206
441
|
},
|
|
207
442
|
};
|
|
208
443
|
// Auto-detect and add mounts if needed
|
|
209
|
-
let mounts = env.mounts
|
|
210
|
-
|
|
444
|
+
let mounts = env.mounts ? [...env.mounts] : []; // Create a copy to avoid mutating original
|
|
445
|
+
// If projectHostPath is specified, always add the project root mount
|
|
446
|
+
// This ensures the project root is accessible even when custom mounts are specified
|
|
447
|
+
// Only create the mount if the directory exists to avoid mount errors with invalid paths
|
|
448
|
+
if (resolvedConfig.projectHostPath && existsSync(projectDir)) {
|
|
211
449
|
const mount = getProjectRootMount(projectDir, projectType);
|
|
212
450
|
if (mount) {
|
|
213
|
-
|
|
451
|
+
// Check if this mount already exists (by vfsPath) to avoid duplicates
|
|
452
|
+
// Normalize paths by removing trailing slashes for comparison
|
|
453
|
+
const normalizeVfsPath = (path) => path.replace(/\/+$/, '');
|
|
454
|
+
const mountVfsPath = normalizeVfsPath(mount.vfsPath);
|
|
455
|
+
const existingMount = mounts.find(m => normalizeVfsPath(m.vfsPath) === mountVfsPath);
|
|
456
|
+
if (!existingMount) {
|
|
457
|
+
// Prepend auto-mount so custom mounts can override if needed
|
|
458
|
+
mounts = [mount, ...mounts];
|
|
459
|
+
}
|
|
214
460
|
}
|
|
215
461
|
}
|
|
216
462
|
// Resolve relative mount paths to absolute paths
|
|
@@ -218,17 +464,48 @@ export async function resolveConfig(config) {
|
|
|
218
464
|
...mount,
|
|
219
465
|
hostPath: resolveAbsolute(mount.hostPath, projectDir),
|
|
220
466
|
}));
|
|
467
|
+
// Sort mounts by VFS path depth (shallowest first, deepest last).
|
|
468
|
+
// WordPress Playground applies mounts in order, with later mounts taking precedence.
|
|
469
|
+
// By mounting parent paths first and child paths last, child mounts can override
|
|
470
|
+
// parent mounts when paths overlap.
|
|
471
|
+
// Example: /wordpress/wp-content/plugins should come before /wordpress/wp-content/plugins/foo
|
|
472
|
+
resolvedMounts.sort((a, b) => {
|
|
473
|
+
const depthA = a.vfsPath.split('/').filter(Boolean).length;
|
|
474
|
+
const depthB = b.vfsPath.split('/').filter(Boolean).length;
|
|
475
|
+
return depthA - depthB; // Sort ascending (shallowest first)
|
|
476
|
+
});
|
|
221
477
|
return {
|
|
222
478
|
name: env.name,
|
|
223
479
|
blueprint: resolvedBlueprint,
|
|
224
480
|
mounts: resolvedMounts,
|
|
481
|
+
env: env.env || {},
|
|
482
|
+
skip: env.skip ?? false,
|
|
225
483
|
};
|
|
226
484
|
}));
|
|
227
485
|
// Resolve PHPUnit paths to absolute paths and ensure testMode has a default
|
|
228
486
|
const resolvedTests = resolveTests(resolvedConfig.tests, projectDir);
|
|
229
|
-
//
|
|
230
|
-
|
|
231
|
-
|
|
487
|
+
// Determine project VFS path
|
|
488
|
+
let projectVFSPath;
|
|
489
|
+
if (resolvedConfig.projectVFSPath !== undefined) {
|
|
490
|
+
// Explicitly specified in config
|
|
491
|
+
projectVFSPath = resolvedConfig.projectVFSPath;
|
|
492
|
+
}
|
|
493
|
+
else {
|
|
494
|
+
// Auto-detect from projectType
|
|
495
|
+
const mount = getProjectRootMount(projectDir, projectType);
|
|
496
|
+
if (mount?.vfsPath) {
|
|
497
|
+
projectVFSPath = mount.vfsPath;
|
|
498
|
+
}
|
|
499
|
+
else {
|
|
500
|
+
// For "other" project types without explicit projectVFSPath,
|
|
501
|
+
// fall back to projectDir but validate it looks like a path
|
|
502
|
+
if (projectType === "other" && !projectDir.startsWith("/")) {
|
|
503
|
+
throw new Error(`Cannot auto-detect mount path for projectType "other". ` +
|
|
504
|
+
`Please specify "projectVFSPath" in your config to indicate where your project directory should be mounted (e.g., "/project", "/wordpress/wp-content/mu-plugins/my-plugin").`);
|
|
505
|
+
}
|
|
506
|
+
projectVFSPath = projectDir;
|
|
507
|
+
}
|
|
508
|
+
}
|
|
232
509
|
// Return fully resolved config with all required fields
|
|
233
510
|
return {
|
|
234
511
|
...resolvedConfig,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export type { WPTesterConfig, Environment, Tests, PHPUnitConfig, TestType,
|
|
2
|
-
export type { ResolvedEnvironment, ResolvedWPTesterConfig, ResolvedPHPUnitConfig, ResolvedTests, ResolvedBlueprint, } from './resolved-types.js';
|
|
3
|
-
export { readConfigFile, writeConfigFile, configPath, getSchemaPath, getDefaultConfig, isConfigWritable, resolveConfig, getProjectDir, getConfigDir, getConfigPath, resolveAbsolute, } from "./config.js";
|
|
4
|
-
export { mergePhpunitArgs } from './phpunit.js';
|
|
1
|
+
export type { WPTesterConfig, EnvironmentVariables, Environment, Tests, PHPUnitConfig, TestType, Reporters, BaseReporterOptions, DefaultReporterOptions, Mount, Blueprint, JsonReporterOptions, WatchConfig, } from "./types.js";
|
|
2
|
+
export type { ResolvedEnvironment, ResolvedWPTesterConfig, ResolvedPHPUnitConfig, ResolvedTests, ResolvedBlueprint, ResolvedReporters, } from './resolved-types.js';
|
|
3
|
+
export { readConfigFile, writeConfigFile, configPath, getSchemaPath, getDefaultConfig, isConfigWritable, resolveConfig, getProjectDir, getConfigDir, getConfigPath, normalizeConfigPath, resolveAbsolute, getWorkingDirectory, } from "./config.js";
|
|
5
4
|
export { getProjectRootMount } from './auto-mount.js';
|
|
6
5
|
export { hostToVfs, vfsToHost } from './path-mappers.js';
|
|
7
6
|
export type { ProjectType } from './options/project-type-detect.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,cAAc,EACd,WAAW,EACX,KAAK,EACL,aAAa,EACb,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,KAAK,EACL,aAAa,EACb,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,EACL,SAAS,EACT,mBAAmB,EACnB,WAAW,GACZ,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,cAAc,EACd,eAAe,EACf,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// Functions
|
|
2
|
-
export { readConfigFile, writeConfigFile, configPath, getSchemaPath, getDefaultConfig, isConfigWritable, resolveConfig, getProjectDir, getConfigDir, getConfigPath, resolveAbsolute, } from "./config.js";
|
|
3
|
-
export { mergePhpunitArgs } from './phpunit.js';
|
|
2
|
+
export { readConfigFile, writeConfigFile, configPath, getSchemaPath, getDefaultConfig, isConfigWritable, resolveConfig, getProjectDir, getConfigDir, getConfigPath, normalizeConfigPath, resolveAbsolute, getWorkingDirectory, } from "./config.js";
|
|
4
3
|
export { getProjectRootMount } from './auto-mount.js';
|
|
5
4
|
export { hostToVfs, vfsToHost } from './path-mappers.js';
|
|
6
5
|
// Options
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2BA,YAAY;AACZ,OAAO,EACL,cAAc,EACd,eAAe,EACf,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGtD,UAAU;AACV,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAgE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAA8B,MAAM,0BAA0B,CAAC"}
|
package/dist/options/phpunit.js
CHANGED
|
@@ -13,13 +13,13 @@ async function promptForTestMode() {
|
|
|
13
13
|
options: [
|
|
14
14
|
{
|
|
15
15
|
value: "unit",
|
|
16
|
-
label: "Unit tests
|
|
17
|
-
hint: "
|
|
16
|
+
label: "Unit tests",
|
|
17
|
+
hint: "Uses WP Test library mocks - won't break existing tests"
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
value: "integration",
|
|
21
|
-
label: "Integration tests
|
|
22
|
-
hint: "
|
|
21
|
+
label: "Integration tests",
|
|
22
|
+
hint: "Runs inside WordPress - call WP functions, test plugin compatibility, make HTTP requests"
|
|
23
23
|
}
|
|
24
24
|
],
|
|
25
25
|
initialValue: "unit"
|
|
@@ -147,11 +147,11 @@ async function handleFullDetection(config, projectHostPath, configFile, executab
|
|
|
147
147
|
clack.note(configNote, "Detected PHPUnit Configuration");
|
|
148
148
|
// Ask user to confirm or customize
|
|
149
149
|
const action = await clack.select({
|
|
150
|
-
message: "PHPUnit
|
|
150
|
+
message: "PHPUnit configuration detected. What would you like to do?",
|
|
151
151
|
options: [
|
|
152
|
-
{ value: "use", label: "Use detected configuration" },
|
|
153
|
-
{ value: "customize", label: "Customize configuration" },
|
|
154
|
-
{ value: "skip", label: "Skip PHPUnit tests" },
|
|
152
|
+
{ value: "use", label: "Use detected configuration", hint: "Recommended" },
|
|
153
|
+
{ value: "customize", label: "Customize configuration", hint: "Specify different paths" },
|
|
154
|
+
{ value: "skip", label: "Skip PHPUnit tests", hint: "Configure later" },
|
|
155
155
|
],
|
|
156
156
|
initialValue: "use",
|
|
157
157
|
});
|
|
@@ -205,9 +205,9 @@ async function handlePartialDetection(config, projectHostPath, configFile) {
|
|
|
205
205
|
const action = await clack.select({
|
|
206
206
|
message: "What would you like to do?",
|
|
207
207
|
options: [
|
|
208
|
-
{ value: "retry", label: "
|
|
209
|
-
{ value: "custom", label: "Specify custom path" },
|
|
210
|
-
{ value: "skip", label: "Skip for now" },
|
|
208
|
+
{ value: "retry", label: "Try again", hint: "After running composer install" },
|
|
209
|
+
{ value: "custom", label: "Specify custom path", hint: "PHPUnit is in a different location" },
|
|
210
|
+
{ value: "skip", label: "Skip for now", hint: "Configure later" },
|
|
211
211
|
],
|
|
212
212
|
initialValue: "retry",
|
|
213
213
|
});
|