@wp-tester/config 0.1.0 → 0.1.2

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.
Files changed (49) hide show
  1. package/dist/config-file.d.ts +6 -0
  2. package/dist/config-file.d.ts.map +1 -0
  3. package/dist/config-file.js +44 -0
  4. package/dist/config-file.js.map +1 -0
  5. package/dist/config.d.ts +0 -56
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +23 -340
  8. package/dist/config.js.map +1 -1
  9. package/dist/environment-resolver.d.ts +26 -0
  10. package/dist/environment-resolver.d.ts.map +1 -0
  11. package/dist/environment-resolver.js +131 -0
  12. package/dist/environment-resolver.js.map +1 -0
  13. package/dist/index.d.ts +7 -3
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +6 -2
  16. package/dist/index.js.map +1 -1
  17. package/dist/options/phpunit-detect.d.ts +13 -26
  18. package/dist/options/phpunit-detect.d.ts.map +1 -1
  19. package/dist/options/phpunit-detect.js +51 -32
  20. package/dist/options/phpunit-detect.js.map +1 -1
  21. package/dist/options/phpunit.d.ts.map +1 -1
  22. package/dist/options/phpunit.js +7 -11
  23. package/dist/options/phpunit.js.map +1 -1
  24. package/dist/options/project-root.js +1 -1
  25. package/dist/options/project-root.js.map +1 -1
  26. package/dist/options/project-type.js +1 -1
  27. package/dist/options/project-type.js.map +1 -1
  28. package/dist/options/smoke-tests.js +1 -1
  29. package/dist/options/smoke-tests.js.map +1 -1
  30. package/dist/path-mappers.d.ts +7 -7
  31. package/dist/path-mappers.d.ts.map +1 -1
  32. package/dist/path-mappers.js +10 -10
  33. package/dist/path-mappers.js.map +1 -1
  34. package/dist/path-utils.d.ts +62 -0
  35. package/dist/path-utils.d.ts.map +1 -0
  36. package/dist/path-utils.js +141 -0
  37. package/dist/path-utils.js.map +1 -0
  38. package/dist/resolved-types.d.ts +22 -7
  39. package/dist/resolved-types.d.ts.map +1 -1
  40. package/dist/test-resolver.d.ts +18 -0
  41. package/dist/test-resolver.d.ts.map +1 -0
  42. package/dist/test-resolver.js +107 -0
  43. package/dist/test-resolver.js.map +1 -0
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/package.json +1 -1
  46. package/dist/phpunit.d.ts +0 -12
  47. package/dist/phpunit.d.ts.map +0 -1
  48. package/dist/phpunit.js +0 -58
  49. package/dist/phpunit.js.map +0 -1
@@ -0,0 +1,6 @@
1
+ import type { WPTesterConfig } from "./wp-tester-config.js";
2
+ export declare function getDefaultConfig(): WPTesterConfig;
3
+ export declare function isConfigWritable(): Promise<boolean>;
4
+ export declare function readConfigFile(path?: string): Promise<WPTesterConfig>;
5
+ export declare function writeConfigFile(config: WPTesterConfig, path?: string): Promise<void>;
6
+ //# sourceMappingURL=config-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,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"}
@@ -0,0 +1,44 @@
1
+ import { readFile, writeFile, access, constants as fsConstants } from "fs/promises";
2
+ import { configPath, normalizeConfigPath } from "./path-utils.js";
3
+ export function getDefaultConfig() {
4
+ return {
5
+ $schema: "https://raw.githubusercontent.com/bgrgicak/wp-tester/trunk/packages/config/src/schema.json",
6
+ environments: [
7
+ {
8
+ name: "Latest WordPress and PHP",
9
+ blueprint: {
10
+ preferredVersions: {
11
+ php: "latest",
12
+ wp: "latest",
13
+ },
14
+ },
15
+ },
16
+ ],
17
+ tests: {},
18
+ };
19
+ }
20
+ export async function isConfigWritable() {
21
+ try {
22
+ await access(configPath(), fsConstants.F_OK);
23
+ return true;
24
+ }
25
+ catch {
26
+ return false;
27
+ }
28
+ }
29
+ export async function readConfigFile(path) {
30
+ if (!path) {
31
+ path = configPath();
32
+ }
33
+ // Normalize the path (handles directory paths)
34
+ path = normalizeConfigPath(path);
35
+ const content = await readFile(path, "utf8");
36
+ return JSON.parse(content);
37
+ }
38
+ export async function writeConfigFile(config, path) {
39
+ if (!path) {
40
+ path = configPath();
41
+ }
42
+ await writeFile(path, JSON.stringify(config, null, 2), "utf8");
43
+ }
44
+ //# sourceMappingURL=config-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,OAAO,EACL,4FAA4F;QAC9F,YAAY,EAAE;YACZ;gBACE,IAAI,EAAE,0BAA0B;gBAChC,SAAS,EAAE;oBACT,iBAAiB,EAAE;wBACjB,GAAG,EAAE,QAAQ;wBACb,EAAE,EAAE,QAAQ;qBACb;iBACF;aACF;SACF;QACD,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAa;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,+CAA+C;IAC/C,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAsB,EACtB,IAAa;IAEb,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,UAAU,EAAE,CAAC;IACtB,CAAC;IACD,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC"}
package/dist/config.d.ts CHANGED
@@ -1,62 +1,6 @@
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;
9
- /**
10
- * Resolve a path to an absolute path.
11
- * If the path is already absolute, return it as-is.
12
- * Otherwise, resolve it relative to the base directory.
13
- *
14
- * @param path - Path to resolve (relative or absolute)
15
- * @param baseDir - Base directory to resolve relative paths from
16
- * @returns Absolute path
17
- */
18
- export declare function resolveAbsolute(path: string, baseDir: string): string;
19
- export declare function configPath(): string;
20
- export declare function getSchemaPath(importMetaUrl?: string): string;
21
- export declare function getDefaultConfig(): WPTesterConfig;
22
- export declare function isConfigWritable(): Promise<boolean>;
23
- export declare function readConfigFile(path?: string): Promise<WPTesterConfig>;
24
- export declare function writeConfigFile(config: WPTesterConfig, path?: string): Promise<void>;
25
- /**
26
- * Get the absolute config file path.
27
- *
28
- * @param config - Path to config file (relative or absolute)
29
- * @returns Absolute path to the config file
30
- */
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;
42
- /**
43
- * Get the config file directory path.
44
- *
45
- * @param configPath - Path to config file
46
- * @returns Directory path where the config file is located
47
- */
48
- export declare function getConfigDir(configPath: string): string;
49
- /**
50
- * Get the project root directory path.
51
- *
52
- * Returns config.projectHostPath if specified (resolved relative to config file or as absolute),
53
- * otherwise returns the config file's directory.
54
- *
55
- * @param config - Config object
56
- * @param configPath - Optional path to config file (needed to resolve relative projectHostPath)
57
- * @returns Absolute path to the project root directory
58
- */
59
- export declare function getProjectDir(config: WPTesterConfig, configPath?: string): string;
60
4
  /**
61
5
  * Resolve config from path or object and adjust relative paths to absolute paths
62
6
  * @param config - Config file path or config object
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAA0F,MAAM,kBAAkB,CAAC;AAUvJ,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,GAAG,MAAM,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CAqNjC"}
package/dist/config.js CHANGED
@@ -1,336 +1,10 @@
1
- import { readFile, writeFile, access, constants as fsConstants } from "fs/promises";
2
- import { existsSync, statSync } from "fs";
3
- import { join, dirname, resolve, isAbsolute } from "path";
4
- import { fileURLToPath } from "url";
1
+ import { readFile } from "fs/promises";
2
+ import { existsSync } from "fs";
5
3
  import { getProjectRootMount } from "./auto-mount.js";
6
4
  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
- }
14
- /**
15
- * Resolve a path to an absolute path.
16
- * If the path is already absolute, return it as-is.
17
- * Otherwise, resolve it relative to the base directory.
18
- *
19
- * @param path - Path to resolve (relative or absolute)
20
- * @param baseDir - Base directory to resolve relative paths from
21
- * @returns Absolute path
22
- */
23
- export function resolveAbsolute(path, baseDir) {
24
- return isAbsolute(path) ? path : resolve(baseDir, path);
25
- }
26
- export function configPath() {
27
- return join(getWorkingDirectory(), "wp-tester.json");
28
- }
29
- export function getSchemaPath(importMetaUrl) {
30
- // For ESM in production (built files)
31
- if (importMetaUrl) {
32
- const currentDir = dirname(fileURLToPath(importMetaUrl));
33
- return join(currentDir, "schema.json");
34
- }
35
- // For CommonJS (built files)
36
- if (typeof __dirname !== "undefined") {
37
- return join(__dirname, "schema.json");
38
- }
39
- // For dev mode: try to find the config package
40
- // Could be in monorepo (packages/config) or installed (node_modules)
41
- const candidates = [
42
- // Monorepo from root
43
- join(process.cwd(), "packages/config/src/schema.json"),
44
- // Monorepo from a package directory
45
- join(process.cwd(), "../config/src/schema.json"),
46
- // Installed package
47
- join(process.cwd(), "node_modules/@wp-tester/config/dist/schema.json"),
48
- ];
49
- for (const candidate of candidates) {
50
- if (existsSync(candidate)) {
51
- return candidate;
52
- }
53
- }
54
- // Last resort
55
- return candidates[candidates.length - 1];
56
- }
57
- export function getDefaultConfig() {
58
- return {
59
- $schema: "https://raw.githubusercontent.com/bgrgicak/wp-tester/trunk/packages/config/src/schema.json",
60
- environments: [
61
- {
62
- name: "Latest WordPress and PHP",
63
- blueprint: {
64
- preferredVersions: {
65
- php: "latest",
66
- wp: "latest",
67
- },
68
- },
69
- },
70
- ],
71
- tests: {},
72
- };
73
- }
74
- export async function isConfigWritable() {
75
- try {
76
- await access(configPath(), fsConstants.F_OK);
77
- return true;
78
- }
79
- catch {
80
- return false;
81
- }
82
- }
83
- export async function readConfigFile(path) {
84
- if (!path) {
85
- path = configPath();
86
- }
87
- // Normalize the path (handles directory paths)
88
- path = normalizeConfigPath(path);
89
- const content = await readFile(path, "utf8");
90
- return JSON.parse(content);
91
- }
92
- export async function writeConfigFile(config, path) {
93
- if (!path) {
94
- path = configPath();
95
- }
96
- await writeFile(path, JSON.stringify(config, null, 2), "utf8");
97
- }
98
- /**
99
- * Get the absolute config file path.
100
- *
101
- * @param config - Path to config file (relative or absolute)
102
- * @returns Absolute path to the config file
103
- */
104
- export function getConfigPath(config) {
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;
137
- }
138
- /**
139
- * Get the config file directory path.
140
- *
141
- * @param configPath - Path to config file
142
- * @returns Directory path where the config file is located
143
- */
144
- export function getConfigDir(configPath) {
145
- return dirname(getConfigPath(configPath));
146
- }
147
- /**
148
- * Get the project root directory path.
149
- *
150
- * Returns config.projectHostPath if specified (resolved relative to config file or as absolute),
151
- * otherwise returns the config file's directory.
152
- *
153
- * @param config - Config object
154
- * @param configPath - Optional path to config file (needed to resolve relative projectHostPath)
155
- * @returns Absolute path to the project root directory
156
- */
157
- export function getProjectDir(config, configPath) {
158
- // Get base directory: config file location or cwd
159
- const baseDir = configPath ? getConfigDir(configPath) : getWorkingDirectory();
160
- // If projectHostPath is specified, resolve it relative to base directory
161
- if (config.projectHostPath) {
162
- return resolveAbsolute(config.projectHostPath, baseDir);
163
- }
164
- // No projectHostPath specified, return base directory
165
- return baseDir;
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
- }
295
- /**
296
- * Resolve PHPUnit config paths and set default testMode
297
- * @param tests - Tests configuration
298
- * @param projectDir - Project directory for resolving relative paths
299
- * @returns Resolved tests configuration
300
- */
301
- function resolveTests(tests, projectDir) {
302
- // If no PHPUnit config, return tests as-is (but explicitly typed)
303
- if (!tests.phpunit) {
304
- return {
305
- plugin: tests.plugin,
306
- theme: tests.theme,
307
- wp: tests.wp,
308
- passWithNoTests: tests.passWithNoTests,
309
- };
310
- }
311
- // Resolve PHPUnit config with absolute paths and default testMode
312
- const phpunit = tests.phpunit;
313
- const resolvedPhpunit = {
314
- phpunitPath: resolveAbsolute(phpunit.phpunitPath, projectDir),
315
- configPath: resolveAbsolute(phpunit.configPath, projectDir),
316
- testMode: phpunit.testMode ?? "unit",
317
- };
318
- // Add optional bootstrapPath if present
319
- if (phpunit.bootstrapPath) {
320
- resolvedPhpunit.bootstrapPath = resolveAbsolute(phpunit.bootstrapPath, projectDir);
321
- }
322
- // Preserve phpunitArgs if present
323
- if (phpunit.phpunitArgs) {
324
- resolvedPhpunit.phpunitArgs = phpunit.phpunitArgs;
325
- }
326
- return {
327
- plugin: tests.plugin,
328
- theme: tests.theme,
329
- wp: tests.wp,
330
- phpunit: resolvedPhpunit,
331
- passWithNoTests: tests.passWithNoTests,
332
- };
333
- }
5
+ import { getProjectDir, resolveAbsolute, normalizeConfigPath } from "./path-utils.js";
6
+ import { expandEnvironments } from "./environment-resolver.js";
7
+ import { resolveTests } from "./test-resolver.js";
334
8
  /**
335
9
  * Resolve config from path or object and adjust relative paths to absolute paths
336
10
  * @param config - Config file path or config object
@@ -442,12 +116,17 @@ export async function resolveConfig(config) {
442
116
  };
443
117
  // Auto-detect and add mounts if needed
444
118
  let mounts = env.mounts ? [...env.mounts] : []; // Create a copy to avoid mutating original
445
- // If projectHostPath is specified, always add the project root mount
119
+ // Always add the project root mount if the directory exists
446
120
  // 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)) {
449
- const mount = getProjectRootMount(projectDir, projectType);
450
- if (mount) {
121
+ if (existsSync(projectDir)) {
122
+ // Use projectVFSPath if specified, otherwise derive from projectType
123
+ const baseMount = resolvedConfig.projectVFSPath
124
+ ? { hostPath: projectDir, vfsPath: resolvedConfig.projectVFSPath }
125
+ : getProjectRootMount(projectDir, projectType);
126
+ if (baseMount) {
127
+ // Auto-mounts use beforeInstall: true so the project is available
128
+ // before the blueprint runs (e.g., for activatePlugin steps)
129
+ const mount = { ...baseMount, beforeInstall: true };
451
130
  // Check if this mount already exists (by vfsPath) to avoid duplicates
452
131
  // Normalize paths by removing trailing slashes for comparison
453
132
  const normalizeVfsPath = (path) => path.replace(/\/+$/, '');
@@ -482,8 +161,6 @@ export async function resolveConfig(config) {
482
161
  skip: env.skip ?? false,
483
162
  };
484
163
  }));
485
- // Resolve PHPUnit paths to absolute paths and ensure testMode has a default
486
- const resolvedTests = resolveTests(resolvedConfig.tests, projectDir);
487
164
  // Determine project VFS path
488
165
  let projectVFSPath;
489
166
  if (resolvedConfig.projectVFSPath !== undefined) {
@@ -506,11 +183,17 @@ export async function resolveConfig(config) {
506
183
  projectVFSPath = projectDir;
507
184
  }
508
185
  }
186
+ // Create project path with both host and VFS paths
187
+ const projectPath = {
188
+ hostPath: projectDir,
189
+ vfsPath: projectVFSPath,
190
+ };
191
+ // Resolve PHPUnit paths to absolute paths and ensure testMode has a default
192
+ const resolvedTests = await resolveTests(resolvedConfig.tests, projectPath);
509
193
  // Return fully resolved config with all required fields
510
194
  return {
511
195
  ...resolvedConfig,
512
- projectHostPath: projectDir,
513
- projectVFSPath,
196
+ projectPath,
514
197
  projectType,
515
198
  reporters,
516
199
  environments: resolvedEnvironments,
@@ -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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"}
@@ -0,0 +1,26 @@
1
+ import type { Environment } from "./wp-tester-config.js";
2
+ /**
3
+ * Internal interface for expanded environments with resolved version arrays.
4
+ * This is used internally during expansion before full resolution.
5
+ */
6
+ export interface ExpandedEnvironment extends Environment {
7
+ /** The specific PHP version for this expanded environment */
8
+ _phpVersion?: string;
9
+ /** The specific WP version for this expanded environment */
10
+ _wpVersion?: string;
11
+ }
12
+ /**
13
+ * Expand environments with version arrays into multiple environments,
14
+ * one for each combination of PHP and WP versions.
15
+ *
16
+ * Rules:
17
+ * - If blueprint.preferredVersions.php is set, it overrides env.php (no matrix for PHP)
18
+ * - If blueprint.preferredVersions.wp is set, it overrides env.wp (no matrix for WP)
19
+ * - When arrays are provided for both php and wp, creates a full matrix of combinations
20
+ *
21
+ * @param environments - Original environments array
22
+ * @param projectDir - Project directory for resolving blueprint paths
23
+ * @returns Expanded environments array
24
+ */
25
+ export declare function expandEnvironments(environments: Environment[], projectDir: string): Promise<ExpandedEnvironment[]>;
26
+ //# sourceMappingURL=environment-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-resolver.d.ts","sourceRoot":"","sources":["../src/environment-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKtD;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAuDD;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,WAAW,EAAE,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAoFhC"}