apex-mutation-testing 1.4.0 → 1.5.0-dev-99.22433332486-1

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/README.md CHANGED
@@ -70,6 +70,16 @@ Before running mutation testing:
70
70
 
71
71
  Remember, mutation testing complements but doesn't replace good test coverage. It helps identify weaknesses in your existing tests, but only for the code they already cover.
72
72
 
73
+ ### Dry Run
74
+
75
+ Before running the full mutation testing process, you can preview the mutations that would be generated using the `--dry-run` flag:
76
+
77
+ ```sh
78
+ sf apex mutation test run --apex-class MyClass --test-class MyClassTest --dry-run
79
+ ```
80
+
81
+ This runs your test class once to collect coverage data, then lists all mutations that would be generated without deploying any of them. Use it to estimate the scope of mutation testing for your class and verify that relevant mutations are being generated for your code patterns.
82
+
73
83
  ### Supported Mutation Operators
74
84
 
75
85
  The plugin currently supports the following mutation operators. If your code doesn't contain any of these patterns on covered lines, no mutations will be generated:
@@ -144,11 +154,12 @@ Evaluate test coverage quality by injecting mutations and measuring test detecti
144
154
 
145
155
  ```
146
156
  USAGE
147
- $ sf apex mutation test run -c <value> -t <value> -o <value> [--json] [--flags-dir <value>] [-r <value>] [--api-version
148
- <value>]
157
+ $ sf apex mutation test run -c <value> -t <value> -o <value> [--json] [--flags-dir <value>] [-r <value>] [-d]
158
+ [--api-version <value>]
149
159
 
150
160
  FLAGS
151
161
  -c, --apex-class=<value> (required) Apex class name to mutate
162
+ -d, --dry-run Preview mutations without deploying or running tests
152
163
  -o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
153
164
  configuration variable is already set.
154
165
  -r, --report-dir=<value> [default: mutations] Path to the directory where mutation test reports will be generated
@@ -172,9 +183,13 @@ EXAMPLES
172
183
  Run mutation testing on a class with its test file:
173
184
 
174
185
  $ sf apex mutation test run --apex-class MyClass --test-class MyClassTest
186
+
187
+ Preview mutations without running them:
188
+
189
+ $ sf apex mutation test run --apex-class MyClass --test-class MyClassTest --dry-run
175
190
  ```
176
191
 
177
- _See code: [src/commands/apex/mutation/test/run.ts](https://github.com/scolladon/apex-mutation-testing/blob/v1.4.0/src/commands/apex/mutation/test/run.ts)_
192
+ _See code: [src/commands/apex/mutation/test/run.ts](https://github.com/scolladon/apex-mutation-testing/blob/v1.5.0-dev-99.22433332486-1/src/commands/apex/mutation/test/run.ts)_
178
193
  <!-- commandsstop -->
179
194
 
180
195
  ## Backlog
@@ -1,6 +1,6 @@
1
1
  import { SfCommand } from '@salesforce/sf-plugins-core';
2
2
  export type ApexMutationTestResult = {
3
- score: number;
3
+ score: number | null;
4
4
  };
5
5
  export default class ApexMutationTest extends SfCommand<ApexMutationTestResult> {
6
6
  static readonly summary: string;
@@ -10,6 +10,7 @@ export default class ApexMutationTest extends SfCommand<ApexMutationTestResult>
10
10
  'apex-class': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
11
11
  'test-class': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
12
  'report-dir': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
+ 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
14
  'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
14
15
  'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
16
  };
@@ -26,22 +26,26 @@ export default class ApexMutationTest extends SfCommand {
26
26
  exists: true,
27
27
  default: 'mutations',
28
28
  }),
29
+ 'dry-run': Flags.boolean({
30
+ char: 'd',
31
+ summary: messages.getMessage('flags.dry-run.summary'),
32
+ default: false,
33
+ }),
29
34
  'target-org': Flags.requiredOrg(),
30
35
  'api-version': Flags.orgApiVersion(),
31
36
  };
32
37
  async run() {
33
- // parse the provided flags
34
38
  const { flags } = await this.parse(ApexMutationTest);
35
39
  const connection = flags['target-org'].getConnection(flags['api-version']);
36
40
  const parameters = {
37
41
  apexClassName: flags['apex-class'],
38
42
  apexTestClassName: flags['test-class'],
39
43
  reportDir: flags['report-dir'],
44
+ dryRun: flags['dry-run'],
40
45
  };
41
- this.log(messages.getMessage('info.CommandIsRunning', [
42
- parameters.apexClassName,
43
- parameters.apexTestClassName,
44
- ]));
46
+ this.log(messages.getMessage(flags['dry-run']
47
+ ? 'info.DryRunCommandIsRunning'
48
+ : 'info.CommandIsRunning', [parameters.apexClassName, parameters.apexTestClassName]));
45
49
  const apexClassValidator = new ApexClassValidator(connection);
46
50
  await apexClassValidator.validate(parameters);
47
51
  const mutationTestingService = new MutationTestingService(this.progress, this.spinner, connection, parameters, messages);
@@ -49,12 +53,14 @@ export default class ApexMutationTest extends SfCommand {
49
53
  const htmlReporter = new ApexMutationHTMLReporter();
50
54
  await htmlReporter.generateReport(mutationResult, parameters.reportDir);
51
55
  this.log(messages.getMessage('info.reportGenerated', [parameters.reportDir]));
52
- const score = mutationTestingService.calculateScore(mutationResult);
53
- this.log(messages.getMessage('info.CommandSuccess', [score]));
56
+ const score = flags['dry-run']
57
+ ? null
58
+ : mutationTestingService.calculateScore(mutationResult);
59
+ if (score !== null) {
60
+ this.log(messages.getMessage('info.CommandSuccess', [score]));
61
+ }
54
62
  this.info(messages.getMessage('info.EncourageSponsorship'));
55
- return {
56
- score,
57
- };
63
+ return { score };
58
64
  }
59
65
  }
60
66
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../../src/commands/apex/mutation/test/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../../src/commands/apex/mutation/test/run.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { ParserRuleContext } from 'antlr4ts';
2
2
  import { DotMethodCallContext } from 'apex-parser';
3
3
  import type { ApexType } from '../type/ApexMethod.js';
4
4
  import type { ResolvedType, TypeRegistry } from '../type/TypeRegistry.js';
5
- export interface DotMethodCallInfo {
5
+ interface DotMethodCallInfo {
6
6
  dotMethodCall: DotMethodCallContext;
7
7
  methodName: string;
8
8
  enclosingMethod: string;
@@ -12,3 +12,4 @@ export declare function getEnclosingMethodName(ctx: ParserRuleContext): string |
12
12
  export declare function resolveDotMethodCall(ctx: ParserRuleContext, typeRegistry: TypeRegistry): DotMethodCallInfo | null;
13
13
  export declare function extractArguments(methodCallCtx: ParserRuleContext): ParserRuleContext[];
14
14
  export declare function resolveExpressionApexType(text: string, enclosingMethod: string, typeRegistry: TypeRegistry): ApexType | null;
15
+ export {};
@@ -17,7 +17,11 @@ export class ApexMutationHTMLReporter {
17
17
  },
18
18
  files: {},
19
19
  };
20
- const errorStatuses = new Set(['CompileError', 'RuntimeError']);
20
+ const untestedStatuses = new Set([
21
+ 'CompileError',
22
+ 'RuntimeError',
23
+ 'Pending',
24
+ ]);
21
25
  const fileResult = {
22
26
  language: 'java',
23
27
  source: apexMutationTestResult.sourceFileContent,
@@ -28,9 +32,9 @@ export class ApexMutationHTMLReporter {
28
32
  status: mutant.status,
29
33
  statusReason: mutant.statusReason,
30
34
  static: false,
31
- coveredBy: errorStatuses.has(mutant.status) ? undefined : ['0'],
35
+ coveredBy: untestedStatuses.has(mutant.status) ? undefined : ['0'],
32
36
  killedBy: mutant.status === 'Killed' ? ['0'] : undefined,
33
- testsCompleted: errorStatuses.has(mutant.status) ? 0 : 1,
37
+ testsCompleted: untestedStatuses.has(mutant.status) ? 0 : 1,
34
38
  location: {
35
39
  start: {
36
40
  line: mutant.location.start.line,
@@ -1 +1 @@
1
- {"version":3,"file":"HTMLReporter.js","sourceRoot":"","sources":["../../src/reporter/HTMLReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAG5B,MAAM,OAAO,wBAAwB;IACnC,KAAK,CAAC,cAAc,CAClB,sBAA8C,EAC9C,YAAoB,SAAS;QAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CAAA;QACpE,iEAAiE;QACjE,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;QAChD,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,CAAA;IAClE,CAAC;IAEO,oBAAoB,CAAC,sBAA8C;QACzE,MAAM,kBAAkB,GAAG;YACzB,aAAa,EAAE,OAAO;YACtB,MAAM,EAAE,EAAE,EAAE,sCAAsC;YAClD,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,EAAE;aACR;YACD,KAAK,EAAE,EAAE;SACV,CAAA;QAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAA;QAE/D,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,sBAAsB,CAAC,iBAAiB;YAChD,OAAO,EAAE,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACrD,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/D,QAAQ,EAAE,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxD,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxD,QAAQ,EAAE;oBACR,KAAK,EAAE;wBACL,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;wBAChC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;qBACrC;oBACD,GAAG,EAAE;wBACH,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI;wBAC9B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM;qBACnC;iBACF;aACF,CAAC,CAAC;SACJ,CAAA;QAED,kBAAkB,CAAC,KAAK,CAAC,GAAG,sBAAsB,CAAC,UAAU,MAAM,CAAC;YAClE,UAAU,CAAA;QAEZ,OAAO,kBAAkB,CAAA;IAC3B,CAAC;CACF;AAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE;IAChC,OAAO;;;;;;;;;;;;;qBAaY,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;;;UAGjD,CAAA;AACV,CAAC,CAAA;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACpC,OAAO,CAAC,CAAA;AACV,CAAC"}
1
+ {"version":3,"file":"HTMLReporter.js","sourceRoot":"","sources":["../../src/reporter/HTMLReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAG5B,MAAM,OAAO,wBAAwB;IACnC,KAAK,CAAC,cAAc,CAClB,sBAA8C,EAC9C,YAAoB,SAAS;QAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CAAA;QACpE,iEAAiE;QACjE,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;QAChD,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,CAAA;IAClE,CAAC;IAEO,oBAAoB,CAAC,sBAA8C;QACzE,MAAM,kBAAkB,GAAG;YACzB,aAAa,EAAE,OAAO;YACtB,MAAM,EAAE,EAAE,EAAE,sCAAsC;YAClD,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,EAAE;aACR;YACD,KAAK,EAAE,EAAE;SACV,CAAA;QAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;YAC/B,cAAc;YACd,cAAc;YACd,SAAS;SACV,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,sBAAsB,CAAC,iBAAiB;YAChD,OAAO,EAAE,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACrD,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAClE,QAAQ,EAAE,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxD,cAAc,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3D,QAAQ,EAAE;oBACR,KAAK,EAAE;wBACL,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;wBAChC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;qBACrC;oBACD,GAAG,EAAE;wBACH,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI;wBAC9B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM;qBACnC;iBACF;aACF,CAAC,CAAC;SACJ,CAAA;QAED,kBAAkB,CAAC,KAAK,CAAC,GAAG,sBAAsB,CAAC,UAAU,MAAM,CAAC;YAClE,UAAU,CAAA;QAEZ,OAAO,kBAAkB,CAAA;IAC3B,CAAC;CACF;AAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE;IAChC,OAAO;;;;;;;;;;;;;qBAaY,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;;;UAGjD,CAAA;AACV,CAAC,CAAA;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACpC,OAAO,CAAC,CAAA;AACV,CAAC"}
@@ -9,8 +9,9 @@ export declare class MutationTestingService {
9
9
  protected readonly messages: Messages<string>;
10
10
  protected readonly apexClassName: string;
11
11
  protected readonly apexTestClassName: string;
12
+ protected readonly dryRun: boolean;
12
13
  private apexClassContent;
13
- constructor(progress: Progress, spinner: Spinner, connection: Connection, { apexClassName, apexTestClassName }: ApexMutationParameter, messages: Messages<string>);
14
+ constructor(progress: Progress, spinner: Spinner, connection: Connection, { apexClassName, apexTestClassName, dryRun }: ApexMutationParameter, messages: Messages<string>);
14
15
  process(): Promise<ApexMutationTestResult>;
15
16
  calculateScore(mutationResult: ApexMutationTestResult): number;
16
17
  private buildMutantResult;
@@ -36,14 +36,16 @@ export class MutationTestingService {
36
36
  messages;
37
37
  apexClassName;
38
38
  apexTestClassName;
39
+ dryRun;
39
40
  apexClassContent = '';
40
- constructor(progress, spinner, connection, { apexClassName, apexTestClassName }, messages) {
41
+ constructor(progress, spinner, connection, { apexClassName, apexTestClassName, dryRun }, messages) {
41
42
  this.progress = progress;
42
43
  this.spinner = spinner;
43
44
  this.connection = connection;
44
45
  this.messages = messages;
45
46
  this.apexClassName = apexClassName;
46
47
  this.apexTestClassName = apexTestClassName;
48
+ this.dryRun = dryRun ?? false;
47
49
  }
48
50
  async process() {
49
51
  const apexClassRepository = new ApexClassRepository(this.connection);
@@ -112,13 +114,28 @@ export class MutationTestingService {
112
114
  coveredLines.size,
113
115
  ]));
114
116
  }
117
+ this.spinner.stop(`${mutations.length} mutations generated`);
118
+ if (this.dryRun) {
119
+ return {
120
+ sourceFile: this.apexClassName,
121
+ sourceFileContent: apexClass.Body,
122
+ testFile: this.apexTestClassName,
123
+ mutants: mutations.map(mutation => ({
124
+ id: `${this.apexClassName}-${mutation.target.startToken.line}-${mutation.target.startToken.charPositionInLine}-${mutation.target.startToken.tokenIndex}-${Date.now()}`,
125
+ mutatorName: mutation.mutationName,
126
+ status: 'Pending',
127
+ location: this.calculateMutationPosition(mutation, apexClass.Body),
128
+ replacement: mutation.replacement,
129
+ original: this.extractMutationOriginalText(mutation),
130
+ })),
131
+ };
132
+ }
115
133
  const mutationResults = {
116
134
  sourceFile: this.apexClassName,
117
135
  sourceFileContent: apexClass.Body,
118
136
  testFile: this.apexTestClassName,
119
137
  mutants: [],
120
138
  };
121
- this.spinner.stop(`${mutations.length} mutations generated`);
122
139
  this.progress.start(mutations.length, { info: 'Starting mutation testing' }, {
123
140
  title: 'MUTATION TESTING PROGRESS',
124
141
  format: '%s | {bar} | {value}/{total} {info}',
@@ -1 +1 @@
1
- {"version":3,"file":"mutationTestingService.js","sourceRoot":"","sources":["../../src/service/mutationTestingService.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAA;AAKnF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAuB3E,MAAM,eAAe,GAAkC;IACrD;QACE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC;QACpD,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YAC9B,MAAM,EAAE,cAAc;YACtB,YAAY,EAAE,GAAG;YACjB,eAAe,EAAE,0CAA0C,UAAU,CAAC,IAAI,EAAE;SAC7E,CAAC;KACH;IACD;QACE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAClD,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,EAAE,QAAQ;YAChB,eAAe,EAAE,mCAAmC,GAAG,GAAG;SAC3D,CAAC;KACH;IACD;QACE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;QACnB,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,EAAE,cAAc;YACtB,YAAY,EAAE,GAAG;YACjB,eAAe,EAAE,mCAAmC,GAAG,GAAG;SAC3D,CAAC;KACH;CACF,CAAA;AAED,MAAM,OAAO,sBAAsB;IAMZ;IACA;IACA;IAEA;IATF,aAAa,CAAQ;IACrB,iBAAiB,CAAQ;IACpC,gBAAgB,GAAW,EAAE,CAAA;IAErC,YACqB,QAAkB,EAClB,OAAgB,EAChB,UAAsB,EACzC,EAAE,aAAa,EAAE,iBAAiB,EAAyB,EACxC,QAA0B;QAJ1B,aAAQ,GAAR,QAAQ,CAAU;QAClB,YAAO,GAAP,OAAO,CAAS;QAChB,eAAU,GAAV,UAAU,CAAY;QAEtB,aAAQ,GAAR,QAAQ,CAAkB;QAE7C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;IAC5C,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACpE,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1D,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,aAAa,IAAI,CAAC,aAAa,qBAAqB,EACpD,SAAS,EACT;YACE,MAAM,EAAE,IAAI;SACb,CACF,CAAA;QAED,MAAM,SAAS,GAAc,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAC1D,IAAI,CAAC,aAAa,CACnB,CAAyB,CAAA;QAE1B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAA;QAEtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,qCAAqC,IAAI,CAAC,aAAa,GAAG,EAC1D,SAAS,EACT;YACE,MAAM,EAAE,IAAI;SACb,CACF,CAAA;QACD,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,wBAAwB,CACrE,SAAS,CAAC,EAAY,CACvB,CAAA;QAED,MAAM,cAAc,GAAG,YAAY;aAChC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,KAAK,WAAW,CAAC;aAC3D,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QAE3C,MAAM,mBAAmB,GAAG,YAAY;aACrC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,KAAK,gBAAgB,CAAC;aAChE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QAE3C,MAAM,iBAAiB,GAAG,YAAY;aACnC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,KAAK,cAAc,CAAC;aAC9D,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QAE3C,MAAM,yBAAyB,GAAG,IAAI,yBAAyB,CAC7D,IAAI,CAAC,UAAU,CAChB,CAAA;QACD,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;QAC1E,MAAM,cAAc,GAAG,IAAI,kBAAkB,CAC3C,IAAI,GAAG,CAAC,CAAC,GAAG,mBAAmB,EAAE,GAAG,iBAAiB,CAAC,CAAC,EACvD,yBAAyB,CAC1B,CAAA;QAED,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE;aACxC,WAAW,CAAC,gBAAgB,CAAC;aAC7B,WAAW,CAAC,cAAc,CAAC,CAAA;QAE9B,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,SAAS,EAAE;YACtD,MAAM,EAAE,IAAI;SACb,CAAC,CAAA;QAEF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,GACtD,MAAM,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAErE,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YACnB,MAAM,IAAI,KAAK,CACb,gEAAgE;gBAC9D,iBAAiB,OAAO,IAAI;gBAC5B,kBAAkB,OAAO,IAAI,CAChC,CAAA;QACH,CAAC;QAED,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YACnB,MAAM,IAAI,KAAK,CACb,uCAAuC;gBACrC,iBAAiB,IAAI,CAAC,iBAAiB,YAAY;gBACnD,0CAA0C;gBAC1C,mCAAmC,CACtC,CAAA;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAE1C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAA;QAEvD,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE;gBAC3C,IAAI,CAAC,aAAa;gBAClB,IAAI,CAAC,iBAAiB;aACvB,CAAC,CACH,CAAA;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,2BAA2B,IAAI,CAAC,aAAa,aAAa,EAC1D,SAAS,EACT;YACE,MAAM,EAAE,IAAI;SACb,CACF,CAAA;QACD,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC7C,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CACvC,SAAS,CAAC,IAAI,EACd,YAAY,EACZ,YAAY,CACb,CAAA;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;YAC1C,MAAM,IAAI,KAAK,CACb,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,EAAE;gBAC5C,IAAI,CAAC,aAAa;gBAClB,YAAY,CAAC,IAAI;aAClB,CAAC,CACH,CAAA;QACH,CAAC;QAED,MAAM,eAAe,GAA2B;YAC9C,UAAU,EAAE,IAAI,CAAC,aAAa;YAC9B,iBAAiB,EAAE,SAAS,CAAC,IAAI;YACjC,QAAQ,EAAE,IAAI,CAAC,iBAAiB;YAChC,OAAO,EAAE,EAAE;SACZ,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,sBAAsB,CAAC,CAAA;QAE5D,IAAI,CAAC,QAAQ,CAAC,KAAK,CACjB,SAAS,CAAC,MAAM,EAChB,EAAE,IAAI,EAAE,2BAA2B,EAAE,EACrC;YACE,KAAK,EAAE,2BAA2B;YAClC,MAAM,EAAE,qCAAqC;SAC9C,CACF,CAAA;QAED,IAAI,aAAa,GAAG,CAAC,CAAA;QACrB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAEvD,MAAM,UAAU,GAAoB;gBAClC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;gBACrC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB;gBACrD,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU;gBACjD,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;aAC3B,CAAA;YAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE;gBAClC,IAAI,EAAE,cAAc,QAAQ,CAAC,WAAW,sBAAsB,UAAU,CAAC,IAAI,EAAE;aAChF,CAAC,CAAA;YAEF,IAAI,eAAe,CAAA;YACnB,IAAI,CAAC;gBACH,MAAM,mBAAmB,CAAC,MAAM,CAAC;oBAC/B,EAAE,EAAE,SAAS,CAAC,EAAY;oBAC1B,IAAI,EAAE,cAAc;iBACrB,CAAC,CAAA;gBAEF,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAE,CAAA;gBAE5D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE;oBAClC,IAAI,EAAE,WAAW,WAAW,CAAC,IAAI,uBAAuB,QAAQ,CAAC,WAAW,sBAAsB,UAAU,CAAC,IAAI,EAAE;iBACpH,CAAC,CAAA;gBACF,MAAM,UAAU,GAAe,MAAM,cAAc,CAAC,cAAc,CAChE,IAAI,CAAC,iBAAiB,EACtB,WAAW,CACZ,CAAA;gBAED,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CACzC,QAAQ,EACR,UAAU,EACV,UAAU,CACX,CAAA;gBACD,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;gBAE1C,eAAe,GAAG,oBAAoB,UAAU,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,EAAE,CAAA;YAC9G,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAExD,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAC7C,QAAQ,EACR,IAAI,CAAC,gBAAgB,CACtB,CAAA;gBACD,MAAM,YAAY,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAA;gBAE/D,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAE,CAAA;gBACpE,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;gBAElE,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC;oBAC3B,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;oBAC1G,WAAW,EAAE,QAAQ,CAAC,YAAY;oBAClC,MAAM,EAAE,cAAc,CAAC,MAAM;oBAC7B,GAAG,CAAC,cAAc,CAAC,YAAY,IAAI;wBACjC,YAAY,EAAE,cAAc,CAAC,YAAY;qBAC1C,CAAC;oBACF,QAAQ;oBACR,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,QAAQ,EAAE,YAAY;iBACvB,CAAC,CAAA;gBACF,eAAe,GAAG,cAAc,CAAC,eAAe,CAAA;YAClD,CAAC;YACD,EAAE,aAAa,CAAA;YACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE;gBAClC,IAAI,EAAE,eAAe;aACtB,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,yBAAyB;SAChC,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,iBAAiB,IAAI,CAAC,aAAa,mCAAmC,EACtE,SAAS,EACT;gBACE,MAAM,EAAE,IAAI;aACb,CACF,CAAA;YACD,MAAM,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;QACnE,CAAC;QAED,OAAO,eAAe,CAAA;IACxB,CAAC;IAEM,cAAc,CAAC,cAAsC;QAC1D,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAChD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,cAAc,CAC3C,CAAA;QACD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAA;QACV,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAA;QAC1D,OAAO,CACL,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACtE,YAAY,CAAC,MAAM,CAAC;YACtB,GAAG,CACJ,CAAA;IACH,CAAC;IAEO,iBAAiB,CACvB,QAAsB,EACtB,UAAsB,EACtB,UAA2B;QAE3B,MAAM,cAAc,GAClB,UAAU,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEjE,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAC7C,QAAQ,EACR,IAAI,CAAC,gBAAgB,CACtB,CAAA;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAA;QAC/D,OAAO;YACL,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;YAC1G,WAAW,EAAE,QAAQ,CAAC,YAAY;YAClC,MAAM,EAAE,cAAc;YACtB,QAAQ;YACR,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,QAAQ,EAAE,YAAY;SACvB,CAAA;IACH,CAAC;IAEO,yBAAyB,CAC/B,QAAsB,EACtB,aAAqB;QAKrB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAA;QACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAA;QAEpC,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,gCAAgC,CACpD,aAAa,EACb,KAAK,CAAC,UAAU,CACjB,CAAA;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,gCAAgC,CAClD,aAAa,EACb,GAAG,CAAC,SAAS,GAAG,CAAC,CAClB,CAAA;YAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;QACzC,CAAC;QAED,MAAM,IAAI,KAAK,CACb,8CAA8C,QAAQ,CAAC,YAAY,EAAE,CACtE,CAAA;IACH,CAAC;IAEO,gCAAgC,CACtC,aAAqB,EACrB,aAAqB;QAErB,MAAM,eAAe,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;QACjE,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEzC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,MAAM;YAClB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;SAC3C,CAAA;IACH,CAAC;IAEO,2BAA2B,CAAC,QAAsB;QACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAA;QACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAA;QAEpC,IACE,KAAK,CAAC,UAAU,KAAK,SAAS;YAC9B,GAAG,CAAC,SAAS,KAAK,SAAS;YAC3B,IAAI,CAAC,gBAAgB,EACrB,CAAC;YACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CACpC,KAAK,CAAC,UAAU,EAChB,GAAG,CAAC,SAAS,GAAG,CAAC,CAClB,CAAA;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CACb,iDAAiD,QAAQ,CAAC,YAAY,EAAE,CACzE,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"mutationTestingService.js","sourceRoot":"","sources":["../../src/service/mutationTestingService.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ export interface ApexMutationParameter {
2
2
  apexClassName: string;
3
3
  apexTestClassName: string;
4
4
  reportDir: string;
5
+ dryRun?: boolean;
5
6
  }
@@ -5,7 +5,7 @@ export interface ApexMutationTestResult {
5
5
  mutants: {
6
6
  id: string;
7
7
  mutatorName: string;
8
- status: 'Killed' | 'Survived' | 'NoCoverage' | 'CompileError' | 'RuntimeError';
8
+ status: 'Killed' | 'Survived' | 'NoCoverage' | 'CompileError' | 'RuntimeError' | 'Pending';
9
9
  statusReason?: string;
10
10
  location: {
11
11
  start: {
@@ -26,6 +26,10 @@ Path to the directory where mutation test reports will be generated
26
26
 
27
27
  <%= config.bin %> <%= command.id %> --apex-class MyClass --test-class MyClassTest
28
28
 
29
+ - Preview mutations without running them:
30
+
31
+ <%= config.bin %> <%= command.id %> --apex-class MyClass --test-class MyClassTest --dry-run
32
+
29
33
  # info.reportGenerated
30
34
 
31
35
  Report has been generated at this location: %s
@@ -34,6 +38,10 @@ Report has been generated at this location: %s
34
38
 
35
39
  Running mutation testing for "%s" with "%s" test class
36
40
 
41
+ # info.DryRunCommandIsRunning
42
+
43
+ Running dry run mutation testing for "%s" with "%s" test class
44
+
37
45
  # info.CommandSuccess
38
46
 
39
47
  Mutation score: %s%
@@ -55,3 +63,7 @@ No test coverage found for '%s'. Ensure '%s' tests exercise the code you want to
55
63
  # error.noMutations
56
64
 
57
65
  No mutations could be generated for '%s'. %s line(s) covered but no mutable patterns found.
66
+
67
+ # flags.dry-run.summary
68
+
69
+ Preview mutations without deploying or running tests
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "apex-mutation-testing",
3
- "version": "1.4.0",
3
+ "version": "1.5.0-dev-99.22433332486-1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "apex-mutation-testing",
9
- "version": "1.4.0",
9
+ "version": "1.5.0-dev-99.22433332486-1",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@oclif/core": "^4.8.1",
@@ -5,7 +5,8 @@
5
5
  "args": {},
6
6
  "description": "The Apex Mutation Testing plugin helps evaluate the effectiveness of your Apex test classes by introducing mutations into your code and checking if your tests can detect these changes:\n\nThe plugin provides insights into how trustworthy your test suite is by measuring its ability to catch intentional code changes.",
7
7
  "examples": [
8
- "Run mutation testing on a class with its test file:\n<%= config.bin %> <%= command.id %> --apex-class MyClass --test-class MyClassTest"
8
+ "Run mutation testing on a class with its test file:\n<%= config.bin %> <%= command.id %> --apex-class MyClass --test-class MyClassTest",
9
+ "Preview mutations without running them:\n<%= config.bin %> <%= command.id %> --apex-class MyClass --test-class MyClassTest --dry-run"
9
10
  ],
10
11
  "flags": {
11
12
  "json": {
@@ -50,6 +51,13 @@
50
51
  "multiple": false,
51
52
  "type": "option"
52
53
  },
54
+ "dry-run": {
55
+ "char": "d",
56
+ "name": "dry-run",
57
+ "summary": "Preview mutations without deploying or running tests",
58
+ "allowNo": false,
59
+ "type": "boolean"
60
+ },
53
61
  "target-org": {
54
62
  "char": "o",
55
63
  "name": "target-org",
@@ -115,5 +123,5 @@
115
123
  ]
116
124
  }
117
125
  },
118
- "version": "1.4.0"
126
+ "version": "1.5.0-dev-99.22433332486-1"
119
127
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "apex-mutation-testing",
3
3
  "description": "Apex mutation testing plugin",
4
- "version": "1.4.0",
4
+ "version": "1.5.0-dev-99.22433332486-1",
5
5
  "dependencies": {
6
6
  "@oclif/core": "^4.8.1",
7
7
  "@salesforce/apex-node": "^8.4.10",
@@ -65,8 +65,9 @@
65
65
  "dependencies:upgrade": "npx npm-check-updates -u ; npm install ; npm audit fix",
66
66
  "deploy:testclasses": "sf project deploy start -d test/classes",
67
67
  "test:e2e:setup": "sf project deploy start -d test/classes -o e2e-test-org",
68
- "test:e2e:run": "sf apex mutation test run -o e2e-test-org -c Mutation -t MutationTest -r reports/e2e --json > test/e2e/snapshot.json",
69
- "test:e2e:run:local": "node ./bin/run.js apex mutation test run -o apex-mutation-testing -c Mutation -t MutationTest -r reports/e2e --json > test/e2e/snapshot.json",
68
+ "test:e2e:run": "sf apex mutation test run -o e2e-test-org -c Mutation -t MutationTest -r test/e2e && npm run test:e2e:normalize",
69
+ "test:e2e:run:local": "node ./bin/run.js apex mutation test run -o apex-mutation-testing -c Mutation -t MutationTest -r test/e2e && npm run test:e2e:normalize",
70
+ "test:e2e:normalize": "node tooling/normalize-e2e-snapshot.mjs",
70
71
  "test:e2e:validate": "git diff --quiet test/e2e/",
71
72
  "test:e2e:teardown": "sf project deploy start -d test/classes -o e2e-test-org",
72
73
  "test:e2e": "npm run test:e2e:setup && npm run test:e2e:run && npm run test:e2e:validate; npm run test:e2e:teardown",