as-test 1.0.14 → 1.0.16

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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Change Log
2
2
 
3
+ ## 2026-05-08 - v1.0.16
4
+
5
+ - feat: modes inherit pre-declared properties if not explicitly overriden
6
+
7
+ ## 2026-05-04 - v1.0.15
8
+
9
+ - fix: path resolving
10
+
3
11
  ## 2026-05-04 - v1.0.14
4
12
 
5
13
  ### Fuzzing
@@ -23,7 +23,7 @@ export async function fuzz(configPath = DEFAULT_CONFIG_PATH, selectors = [], mod
23
23
  const results = [];
24
24
  for (const file of inputFiles) {
25
25
  const buildStartedAt = Date.now();
26
- await build(configPath, [file], modeName, { coverage: false }, { target: "bindings", args: ["--use", "AS_TEST_FUZZ=1"], kind: "fuzz" }, activeConfig);
26
+ await build(configPath, [file], modeName, { coverage: false }, { target: "bindings", args: ["--use", "AS_TEST_FUZZ=1"], kind: "fuzz" }, loadedConfig);
27
27
  const buildFinishedAt = Date.now();
28
28
  const buildTime = buildFinishedAt - buildStartedAt;
29
29
  results.push(await runFuzzTarget(file, activeConfig.outDir, duplicateBasenames, config, fuzzerSelectors, buildStartedAt, buildFinishedAt, buildTime, modeName));
package/bin/util.js CHANGED
@@ -977,6 +977,70 @@ function outputOverridesField(raw, field) {
977
977
  }
978
978
  return typeof output.snapshots == "string" && output.snapshots.length > 0;
979
979
  }
980
+ function mergeCoverageIgnoreOptions(base, override, raw) {
981
+ const merged = Object.assign(new CoverageIgnoreOptions(), base);
982
+ merged.labels = [...base.labels];
983
+ merged.names = [...base.names];
984
+ merged.locations = [...base.locations];
985
+ merged.snippets = [...base.snippets];
986
+ if ("labels" in raw)
987
+ merged.labels = [...override.labels];
988
+ if ("names" in raw)
989
+ merged.names = [...override.names];
990
+ if ("locations" in raw)
991
+ merged.locations = [...override.locations];
992
+ if ("snippets" in raw)
993
+ merged.snippets = [...override.snippets];
994
+ return merged;
995
+ }
996
+ function mergeCoverageConfig(base, override, raw) {
997
+ if (typeof raw == "boolean")
998
+ return override;
999
+ if (!raw || typeof raw != "object" || Array.isArray(raw))
1000
+ return cloneCoverageOptions(base);
1001
+ const mergedBase = typeof base == "boolean"
1002
+ ? Object.assign(new CoverageOptions(), { enabled: base })
1003
+ : cloneCoverageOptions(base);
1004
+ const overrideOptions = typeof override == "boolean"
1005
+ ? Object.assign(new CoverageOptions(), { enabled: override })
1006
+ : cloneCoverageOptions(override);
1007
+ const rawObject = raw;
1008
+ if ("enabled" in rawObject)
1009
+ mergedBase.enabled = overrideOptions.enabled;
1010
+ if ("includeSpecs" in rawObject)
1011
+ mergedBase.includeSpecs = overrideOptions.includeSpecs;
1012
+ if ("include" in rawObject)
1013
+ mergedBase.include = [...overrideOptions.include];
1014
+ if ("exclude" in rawObject)
1015
+ mergedBase.exclude = [...overrideOptions.exclude];
1016
+ if (rawObject.ignore && typeof rawObject.ignore == "object" && !Array.isArray(rawObject.ignore)) {
1017
+ mergedBase.ignore = mergeCoverageIgnoreOptions(mergedBase.ignore, overrideOptions.ignore, rawObject.ignore);
1018
+ }
1019
+ return mergedBase;
1020
+ }
1021
+ function mergeReporterConfigByRaw(base, override, raw) {
1022
+ if (typeof raw == "string")
1023
+ return override;
1024
+ if (!raw || typeof raw != "object" || Array.isArray(raw)) {
1025
+ return cloneReporterConfig(base);
1026
+ }
1027
+ const mergedBase = typeof base == "string"
1028
+ ? new ReporterConfig()
1029
+ : cloneReporterConfig(base);
1030
+ const overrideConfig = typeof override == "string"
1031
+ ? new ReporterConfig()
1032
+ : cloneReporterConfig(override);
1033
+ const rawObject = raw;
1034
+ if ("name" in rawObject)
1035
+ mergedBase.name = overrideConfig.name;
1036
+ if ("options" in rawObject)
1037
+ mergedBase.options = [...overrideConfig.options];
1038
+ if ("outDir" in rawObject)
1039
+ mergedBase.outDir = overrideConfig.outDir;
1040
+ if ("outFile" in rawObject)
1041
+ mergedBase.outFile = overrideConfig.outFile;
1042
+ return mergedBase;
1043
+ }
980
1044
  function mergeBuildOptions(base, override, raw) {
981
1045
  const merged = cloneBuildOptions(base);
982
1046
  if ("cmd" in raw)
@@ -986,10 +1050,7 @@ function mergeBuildOptions(base, override, raw) {
986
1050
  if ("target" in raw)
987
1051
  merged.target = override.target;
988
1052
  if ("env" in raw) {
989
- merged.env = {
990
- ...merged.env,
991
- ...override.env,
992
- };
1053
+ merged.env = { ...override.env };
993
1054
  }
994
1055
  return merged;
995
1056
  }
@@ -1005,13 +1066,10 @@ function mergeRunOptions(base, override, raw) {
1005
1066
  }
1006
1067
  }
1007
1068
  if ("reporter" in raw) {
1008
- merged.reporter = cloneReporterConfig(override.reporter);
1069
+ merged.reporter = mergeReporterConfigByRaw(merged.reporter, override.reporter, raw.reporter);
1009
1070
  }
1010
1071
  if ("env" in raw) {
1011
- merged.env = {
1012
- ...merged.env,
1013
- ...override.env,
1014
- };
1072
+ merged.env = { ...override.env };
1015
1073
  }
1016
1074
  return merged;
1017
1075
  }
@@ -1052,13 +1110,11 @@ function mergeRootConfig(base, override) {
1052
1110
  }
1053
1111
  if ("config" in raw)
1054
1112
  merged.config = override.config;
1055
- if ("coverage" in raw)
1056
- merged.coverage = cloneCoverageOptions(override.coverage);
1113
+ if ("coverage" in raw) {
1114
+ merged.coverage = mergeCoverageConfig(merged.coverage, override.coverage, raw.coverage);
1115
+ }
1057
1116
  if ("env" in raw) {
1058
- merged.env = {
1059
- ...merged.env,
1060
- ...override.env,
1061
- };
1117
+ merged.env = { ...override.env };
1062
1118
  }
1063
1119
  if (raw.buildOptions && typeof raw.buildOptions == "object" && !Array.isArray(raw.buildOptions)) {
1064
1120
  merged.buildOptions = mergeBuildOptions(merged.buildOptions, override.buildOptions, raw.buildOptions);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "as-test",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "author": "Jairus Tanaka",
5
5
  "repository": {
6
6
  "type": "git",