@sun-asterisk/sungen 3.2.12-beta.4 → 3.2.12-beta.5

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.
@@ -120,6 +120,14 @@ constraints and every synthesized `invalid` value actually violates them. A boun
120
120
  a constraint — fix the field-map/constraints and re-run. This is what stops the "structurally right but
121
121
  semantically wrong" data (e.g. a "below minimum length" case that is actually long enough to pass).
122
122
 
123
+ **Applicability & profiles.** The generator only emits cases that apply, and reports the rest (never
124
+ silent). Set **`required: true|false`** correctly — an optional field drops the "empty (required)" case;
125
+ a numeric field with `min ≥ 0` drops the negative example. Security/injection payloads land in their own
126
+ **`adversarial:`** bucket, separate from `invalid:`. Dropped cases show up as `_not_applicable` in the
127
+ output + a `NOT_APPLICABLE` lint info. A `--profile` (`regression` default · `functional` · `smoke` ·
128
+ `security-min`) and `--locale`/`--channel`/`--sink` on `data gen|validate|lint` select a reduced set;
129
+ selection is deterministic. Prefer setting `required` in the field-map over disabling the empty case.
130
+
123
131
  ## Weaving into scenarios
124
132
 
125
133
  When a `.feature` exists, express invalid/boundary sets as data-driven `Scenario Outline` + `Examples`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sun-asterisk/sungen",
3
- "version": "3.2.12-beta.4",
3
+ "version": "3.2.12-beta.5",
4
4
  "description": "Deterministic E2E Test Compiler - Gherkin + Selectors → Playwright tests",
5
5
  "main": "src/index.ts",
6
6
  "types": "src/index.ts",
@@ -39,8 +39,8 @@
39
39
  "@babel/types": "^7.28.5",
40
40
  "@cucumber/gherkin": "^37.0.0",
41
41
  "@cucumber/messages": "^31.0.0",
42
- "@sungen/driver-data-factory": "3.2.12-beta.4",
43
- "@sungen/driver-ui": "3.2.12-beta.4",
42
+ "@sungen/driver-data-factory": "3.2.12-beta.5",
43
+ "@sungen/driver-ui": "3.2.12-beta.5",
44
44
  "chalk": "^5.6.2",
45
45
  "commander": "^14.0.2",
46
46
  "dotenv": "^17.2.3",
@@ -120,6 +120,14 @@ constraints and every synthesized `invalid` value actually violates them. A boun
120
120
  a constraint — fix the field-map/constraints and re-run. This is what stops the "structurally right but
121
121
  semantically wrong" data (e.g. a "below minimum length" case that is actually long enough to pass).
122
122
 
123
+ **Applicability & profiles.** The generator only emits cases that apply, and reports the rest (never
124
+ silent). Set **`required: true|false`** correctly — an optional field drops the "empty (required)" case;
125
+ a numeric field with `min ≥ 0` drops the negative example. Security/injection payloads land in their own
126
+ **`adversarial:`** bucket, separate from `invalid:`. Dropped cases show up as `_not_applicable` in the
127
+ output + a `NOT_APPLICABLE` lint info. A `--profile` (`regression` default · `functional` · `smoke` ·
128
+ `security-min`) and `--locale`/`--channel`/`--sink` on `data gen|validate|lint` select a reduced set;
129
+ selection is deterministic. Prefer setting `required` in the field-map over disabling the empty case.
130
+
123
131
  ## Weaving into scenarios
124
132
 
125
133
  When a `.feature` exists, express invalid/boundary sets as data-driven `Scenario Outline` + `Examples`