@wp-tester/config 0.1.1 → 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 -345
  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,CAoC5D;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,341 +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) - use import.meta.url from this module
31
- // This works when the package is installed via npm or run via npx
32
- const metaUrl = importMetaUrl || import.meta.url;
33
- if (metaUrl) {
34
- const currentDir = dirname(fileURLToPath(metaUrl));
35
- const schemaPath = join(currentDir, "schema.json");
36
- if (existsSync(schemaPath)) {
37
- return schemaPath;
38
- }
39
- }
40
- // For CommonJS (built files)
41
- if (typeof __dirname !== "undefined") {
42
- return join(__dirname, "schema.json");
43
- }
44
- // For dev mode: try to find the config package
45
- // Could be in monorepo (packages/config) or installed (node_modules)
46
- const candidates = [
47
- // Monorepo from root
48
- join(process.cwd(), "packages/config/src/schema.json"),
49
- // Monorepo from a package directory
50
- join(process.cwd(), "../config/src/schema.json"),
51
- // Installed package
52
- join(process.cwd(), "node_modules/@wp-tester/config/dist/schema.json"),
53
- ];
54
- for (const candidate of candidates) {
55
- if (existsSync(candidate)) {
56
- return candidate;
57
- }
58
- }
59
- // Last resort
60
- return candidates[candidates.length - 1];
61
- }
62
- export function getDefaultConfig() {
63
- return {
64
- $schema: "https://raw.githubusercontent.com/bgrgicak/wp-tester/trunk/packages/config/src/schema.json",
65
- environments: [
66
- {
67
- name: "Latest WordPress and PHP",
68
- blueprint: {
69
- preferredVersions: {
70
- php: "latest",
71
- wp: "latest",
72
- },
73
- },
74
- },
75
- ],
76
- tests: {},
77
- };
78
- }
79
- export async function isConfigWritable() {
80
- try {
81
- await access(configPath(), fsConstants.F_OK);
82
- return true;
83
- }
84
- catch {
85
- return false;
86
- }
87
- }
88
- export async function readConfigFile(path) {
89
- if (!path) {
90
- path = configPath();
91
- }
92
- // Normalize the path (handles directory paths)
93
- path = normalizeConfigPath(path);
94
- const content = await readFile(path, "utf8");
95
- return JSON.parse(content);
96
- }
97
- export async function writeConfigFile(config, path) {
98
- if (!path) {
99
- path = configPath();
100
- }
101
- await writeFile(path, JSON.stringify(config, null, 2), "utf8");
102
- }
103
- /**
104
- * Get the absolute config file path.
105
- *
106
- * @param config - Path to config file (relative or absolute)
107
- * @returns Absolute path to the config file
108
- */
109
- export function getConfigPath(config) {
110
- // Expand tilde (~) to home directory
111
- if (config.startsWith('~/') || config === '~') {
112
- const homeDir = process.env.HOME || process.env.USERPROFILE;
113
- if (!homeDir) {
114
- throw new Error('Unable to resolve home directory');
115
- }
116
- config = config === '~' ? homeDir : join(homeDir, config.slice(2));
117
- }
118
- return isAbsolute(config) ? config : resolve(getWorkingDirectory(), config);
119
- }
120
- /**
121
- * Normalize a config path to ensure it points to a file, not a directory.
122
- * If the path is a directory, appends 'wp-tester.json' to it.
123
- * Used by readConfigFile, resolveConfig, and the test watcher to handle
124
- * directory paths passed via --config flag.
125
- *
126
- * @param configPath - Path to config file or directory (relative or absolute)
127
- * @returns Absolute path to the config file
128
- */
129
- export function normalizeConfigPath(configPath) {
130
- const absolutePath = getConfigPath(configPath);
131
- // Check if path is a directory (synchronous)
132
- try {
133
- const stats = statSync(absolutePath);
134
- if (stats.isDirectory()) {
135
- return join(absolutePath, 'wp-tester.json');
136
- }
137
- }
138
- catch {
139
- // If stat fails, assume it's a file path
140
- }
141
- return absolutePath;
142
- }
143
- /**
144
- * Get the config file directory path.
145
- *
146
- * @param configPath - Path to config file
147
- * @returns Directory path where the config file is located
148
- */
149
- export function getConfigDir(configPath) {
150
- return dirname(getConfigPath(configPath));
151
- }
152
- /**
153
- * Get the project root directory path.
154
- *
155
- * Returns config.projectHostPath if specified (resolved relative to config file or as absolute),
156
- * otherwise returns the config file's directory.
157
- *
158
- * @param config - Config object
159
- * @param configPath - Optional path to config file (needed to resolve relative projectHostPath)
160
- * @returns Absolute path to the project root directory
161
- */
162
- export function getProjectDir(config, configPath) {
163
- // Get base directory: config file location or cwd
164
- const baseDir = configPath ? getConfigDir(configPath) : getWorkingDirectory();
165
- // If projectHostPath is specified, resolve it relative to base directory
166
- if (config.projectHostPath) {
167
- return resolveAbsolute(config.projectHostPath, baseDir);
168
- }
169
- // No projectHostPath specified, return base directory
170
- return baseDir;
171
- }
172
- /**
173
- * Normalize a version spec (string or array) to an array of versions.
174
- * @param spec - Version specification (single string or array)
175
- * @returns Array of version strings
176
- */
177
- function normalizeVersionSpec(spec) {
178
- if (!spec) {
179
- return [];
180
- }
181
- return Array.isArray(spec) ? spec : [spec];
182
- }
183
- /**
184
- * Generate a name for an expanded environment based on the original name
185
- * and the specific PHP/WP versions.
186
- * @param baseName - Original environment name (if any)
187
- * @param phpVersion - PHP version for this combination (only if from matrix)
188
- * @param wpVersion - WordPress version for this combination (only if from matrix)
189
- * @param phpIsFromMatrix - Whether PHP version is from matrix expansion (not blueprint)
190
- * @param wpIsFromMatrix - Whether WP version is from matrix expansion (not blueprint)
191
- * @param isMatrix - Whether this is part of a matrix (multiple combinations)
192
- * @returns Generated environment name
193
- */
194
- function generateExpandedName(baseName, phpVersion, wpVersion, phpIsFromMatrix, wpIsFromMatrix, isMatrix) {
195
- // If not a matrix expansion, keep the original name
196
- if (!isMatrix) {
197
- return baseName;
198
- }
199
- // Build version suffix - only include versions that are from the matrix
200
- const parts = [];
201
- if (phpVersion && phpIsFromMatrix) {
202
- parts.push(`PHP ${phpVersion}`);
203
- }
204
- if (wpVersion && wpIsFromMatrix) {
205
- parts.push(`WP ${wpVersion}`);
206
- }
207
- if (parts.length === 0) {
208
- return baseName;
209
- }
210
- const versionSuffix = parts.join(", ");
211
- return baseName ? `${baseName} (${versionSuffix})` : versionSuffix;
212
- }
213
- /**
214
- * Expand environments with version arrays into multiple environments,
215
- * one for each combination of PHP and WP versions.
216
- *
217
- * Rules:
218
- * - If blueprint.preferredVersions.php is set, it overrides env.php (no matrix for PHP)
219
- * - If blueprint.preferredVersions.wp is set, it overrides env.wp (no matrix for WP)
220
- * - When arrays are provided for both php and wp, creates a full matrix of combinations
221
- *
222
- * @param environments - Original environments array
223
- * @param projectDir - Project directory for resolving blueprint paths
224
- * @returns Expanded environments array
225
- */
226
- async function expandEnvironments(environments, projectDir) {
227
- const expanded = [];
228
- for (const env of environments) {
229
- // Load blueprint if it's a string path (needed to check preferredVersions)
230
- // If no blueprint is provided, use an empty object (defaults will be applied later)
231
- let blueprint;
232
- if (!env.blueprint) {
233
- blueprint = {};
234
- }
235
- else if (typeof env.blueprint === "string") {
236
- const blueprintPath = resolveAbsolute(env.blueprint, projectDir);
237
- const blueprintContent = await readFile(blueprintPath, "utf-8");
238
- blueprint = JSON.parse(blueprintContent);
239
- }
240
- else {
241
- blueprint = env.blueprint;
242
- }
243
- // Determine PHP versions to use
244
- // Blueprint preferredVersions.php overrides environment-level php
245
- // However, "latest" is treated as unspecified, allowing matrix expansion
246
- const blueprintPhp = blueprint.preferredVersions?.php;
247
- let phpVersions;
248
- let phpIsFromMatrix;
249
- if (blueprintPhp && blueprintPhp !== "latest") {
250
- // Blueprint takes precedence - use only the blueprint version
251
- phpVersions = [blueprintPhp];
252
- phpIsFromMatrix = false; // Not from matrix, from blueprint
253
- }
254
- else {
255
- // Use environment-level versions
256
- phpVersions = normalizeVersionSpec(env.php);
257
- phpIsFromMatrix = true; // From matrix (env-level config)
258
- }
259
- // Determine WP versions to use
260
- // Blueprint preferredVersions.wp overrides environment-level wp
261
- // However, "latest" is treated as unspecified, allowing matrix expansion
262
- const blueprintWp = blueprint.preferredVersions?.wp;
263
- let wpVersions;
264
- let wpIsFromMatrix;
265
- if (blueprintWp && blueprintWp !== "latest") {
266
- // Blueprint takes precedence - use only the blueprint version
267
- wpVersions = [blueprintWp];
268
- wpIsFromMatrix = false; // Not from matrix, from blueprint
269
- }
270
- else {
271
- // Use environment-level versions
272
- wpVersions = normalizeVersionSpec(env.wp);
273
- wpIsFromMatrix = true; // From matrix (env-level config)
274
- }
275
- // If no versions specified at either level, create a single environment
276
- if (phpVersions.length === 0 && wpVersions.length === 0) {
277
- expanded.push({ ...env });
278
- continue;
279
- }
280
- // Ensure at least one version for each dimension (use empty string as placeholder for "not specified")
281
- const phpList = phpVersions.length > 0 ? phpVersions : [""];
282
- const wpList = wpVersions.length > 0 ? wpVersions : [""];
283
- // Determine if this is a matrix (multiple combinations)
284
- const isMatrix = phpList.length > 1 || wpList.length > 1;
285
- // Create combinations
286
- for (const phpVersion of phpList) {
287
- for (const wpVersion of wpList) {
288
- const expandedEnv = {
289
- ...env,
290
- name: generateExpandedName(env.name, phpVersion || undefined, wpVersion || undefined, phpIsFromMatrix, wpIsFromMatrix, isMatrix),
291
- _phpVersion: phpVersion || undefined,
292
- _wpVersion: wpVersion || undefined,
293
- };
294
- expanded.push(expandedEnv);
295
- }
296
- }
297
- }
298
- return expanded;
299
- }
300
- /**
301
- * Resolve PHPUnit config paths and set default testMode
302
- * @param tests - Tests configuration
303
- * @param projectDir - Project directory for resolving relative paths
304
- * @returns Resolved tests configuration
305
- */
306
- function resolveTests(tests, projectDir) {
307
- // If no PHPUnit config, return tests as-is (but explicitly typed)
308
- if (!tests.phpunit) {
309
- return {
310
- plugin: tests.plugin,
311
- theme: tests.theme,
312
- wp: tests.wp,
313
- passWithNoTests: tests.passWithNoTests,
314
- };
315
- }
316
- // Resolve PHPUnit config with absolute paths and default testMode
317
- const phpunit = tests.phpunit;
318
- const resolvedPhpunit = {
319
- phpunitPath: resolveAbsolute(phpunit.phpunitPath, projectDir),
320
- configPath: resolveAbsolute(phpunit.configPath, projectDir),
321
- testMode: phpunit.testMode ?? "unit",
322
- };
323
- // Add optional bootstrapPath if present
324
- if (phpunit.bootstrapPath) {
325
- resolvedPhpunit.bootstrapPath = resolveAbsolute(phpunit.bootstrapPath, projectDir);
326
- }
327
- // Preserve phpunitArgs if present
328
- if (phpunit.phpunitArgs) {
329
- resolvedPhpunit.phpunitArgs = phpunit.phpunitArgs;
330
- }
331
- return {
332
- plugin: tests.plugin,
333
- theme: tests.theme,
334
- wp: tests.wp,
335
- phpunit: resolvedPhpunit,
336
- passWithNoTests: tests.passWithNoTests,
337
- };
338
- }
5
+ import { getProjectDir, resolveAbsolute, normalizeConfigPath } from "./path-utils.js";
6
+ import { expandEnvironments } from "./environment-resolver.js";
7
+ import { resolveTests } from "./test-resolver.js";
339
8
  /**
340
9
  * Resolve config from path or object and adjust relative paths to absolute paths
341
10
  * @param config - Config file path or config object
@@ -447,12 +116,17 @@ export async function resolveConfig(config) {
447
116
  };
448
117
  // Auto-detect and add mounts if needed
449
118
  let mounts = env.mounts ? [...env.mounts] : []; // Create a copy to avoid mutating original
450
- // If projectHostPath is specified, always add the project root mount
119
+ // Always add the project root mount if the directory exists
451
120
  // This ensures the project root is accessible even when custom mounts are specified
452
- // Only create the mount if the directory exists to avoid mount errors with invalid paths
453
- if (resolvedConfig.projectHostPath && existsSync(projectDir)) {
454
- const mount = getProjectRootMount(projectDir, projectType);
455
- 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 };
456
130
  // Check if this mount already exists (by vfsPath) to avoid duplicates
457
131
  // Normalize paths by removing trailing slashes for comparison
458
132
  const normalizeVfsPath = (path) => path.replace(/\/+$/, '');
@@ -487,8 +161,6 @@ export async function resolveConfig(config) {
487
161
  skip: env.skip ?? false,
488
162
  };
489
163
  }));
490
- // Resolve PHPUnit paths to absolute paths and ensure testMode has a default
491
- const resolvedTests = resolveTests(resolvedConfig.tests, projectDir);
492
164
  // Determine project VFS path
493
165
  let projectVFSPath;
494
166
  if (resolvedConfig.projectVFSPath !== undefined) {
@@ -511,11 +183,17 @@ export async function resolveConfig(config) {
511
183
  projectVFSPath = projectDir;
512
184
  }
513
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);
514
193
  // Return fully resolved config with all required fields
515
194
  return {
516
195
  ...resolvedConfig,
517
- projectHostPath: projectDir,
518
- projectVFSPath,
196
+ projectPath,
519
197
  projectType,
520
198
  reporters,
521
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"}