diff --git a/.gitignore b/.gitignore index 12172b1516..10c3d42140 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,6 @@ node_modules !**/scripts/**/*.js !**/types/**/*.d.ts + +# stryker temp files +.stryker-tmp diff --git a/config/stryker-config.json b/config/stryker-config.json new file mode 100644 index 0000000000..f357319ef3 --- /dev/null +++ b/config/stryker-config.json @@ -0,0 +1,44 @@ +{ + "$schema": "../node_modules/@stryker-mutator/core/schema/stryker-schema.json", + "mutate": [ + "packages/alfa-act/src/**/*.ts", + "packages/alfa-affine/src/**/*.ts", + "packages/alfa-applicative/src/**/*.ts", + "packages/alfa-aria/src/**/*.ts", + "packages/alfa-array/src/**/*.ts", + "packages/alfa-bits/src/**/*.ts", + "packages/alfa-branched/src/**/*.ts", + "packages/alfa-cache/src/**/*.ts", + "packages/alfa-callback/src/**/*.ts", + "packages/alfa-cascade/src/**/*.ts", + "packages/alfa-clone/src/**/*.ts", + "packages/alfa-collection/src/**/*.ts", + "packages/alfa-comparable/src/**/*.ts", + "packages/alfa-continuation/src/**/*.ts", + "packages/alfa-css-feature/src/**/*.ts", + "packages/alfa-device/src/**/*.ts", + "packages/alfa-dom/src/**/*.ts", + "packages/alfa-earl/src/**/*.ts" + ], + "buildCommand": "sh scripts/stryker-build.sh", + "commandRunner": { "command": "yarn stryker-test" }, + "coverageAnalysis": "off", + "checkers": ["typescript"], + "symlinkNodeModules": false, + "incremental": true, + "tsconfigFile": "config/tsconfig.stryker.json", + "htmlReporter": { + "fileName": "docs/mutation-report.html" + }, + "incrementalFile": "config/stryker-incremental.json", + "thresholds": { + "high": 80, + "low": 60, + "break": 40 + }, + "typescriptChecker": { + "prioritizePerformanceOverAccuracy": false + }, + "reporters": ["html", "progress"], + "timeoutFactor": 15 +} diff --git a/config/stryker-incremental.json b/config/stryker-incremental.json new file mode 100644 index 0000000000..61af352e6c --- /dev/null +++ b/config/stryker-incremental.json @@ -0,0 +1,117187 @@ +{ + "files": { + "packages/alfa-act/src/audit.ts": { + "language": "typescript", + "mutants": [ + { + "id": "0", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "packages/alfa-act/src/audit.ts(35,40): error TS2322: Type 'undefined' is not assignable to type 'Future>'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 56, + "line": 35 + }, + "start": { + "column": 34, + "line": 35 + } + } + }, + { + "id": "1", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/audit.ts(36,6): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 38 + }, + "start": { + "column": 24, + "line": 36 + } + } + }, + { + "id": "2", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/audit.ts(40,20): error TS2564: Property '_input' has no initializer and is not definitely assigned in the constructor.\npackages/alfa-act/src/audit.ts(41,20): error TS2564: Property '_rules' has no initializer and is not definitely assigned in the constructor.\npackages/alfa-act/src/audit.ts(42,20): error TS2564: Property '_oracle' has no initializer and is not definitely assigned in the constructor.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 52 + }, + "start": { + "column": 5, + "line": 48 + } + } + }, + { + "id": "3", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/audit.ts(56,6): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 62 + }, + "start": { + "column": 44, + "line": 56 + } + } + }, + { + "id": "4", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "packages/alfa-act/src/audit.ts(59,47): error TS2322: Type 'undefined' is not assignable to type 'Future'.\npackages/alfa-act/src/audit.ts(60,11): error TS2345: Argument of type '(iterable: Iterable>) => Iterable' is not assignable to parameter of type 'Mapper, Iterable>'.\n Types of parameters 'iterable' and 'value' are incompatible.\n Type 'Iterable' is not assignable to type 'Iterable>'.\n Type 'unknown' is not assignable to type 'Iterable'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 70, + "line": 60 + }, + "start": { + "column": 41, + "line": 59 + } + } + } + ], + "source": "import { Future } from \"@siteimprove/alfa-future\";\nimport type { Hashable } from \"@siteimprove/alfa-hash\";\nimport { Iterable } from \"@siteimprove/alfa-iterable\";\nimport { List } from \"@siteimprove/alfa-list\";\nimport { None } from \"@siteimprove/alfa-option\";\nimport type { Performance } from \"@siteimprove/alfa-performance\";\n\nimport { Cache } from \"./cache\";\nimport type { Oracle } from \"./oracle\";\nimport type { Outcome } from \"./outcome\";\nimport type { Question } from \"./question\";\nimport type { Rule } from \"./rule\";\n\n/**\n * @public\n * * I: type of Input for rules\n * * T: possible types of test targets\n * * Q: questions' metadata type\n * * S: possible types of questions' subject.\n */\nexport class Audit<\n I,\n T extends Hashable,\n Q extends Question.Metadata = {},\n S = T,\n> {\n public static of<\n I,\n T extends Hashable,\n Q extends Question.Metadata = {},\n S = T,\n >(\n input: I,\n rules: Iterable>,\n oracle: Oracle = () => Future.now(None),\n ): Audit {\n return new Audit(input, List.from(rules), oracle);\n }\n\n private readonly _input: I;\n private readonly _rules: List>;\n private readonly _oracle: Oracle;\n\n private constructor(\n input: I,\n rules: List>,\n oracle: Oracle,\n ) {\n this._input = input;\n this._rules = rules;\n this._oracle = oracle;\n }\n\n public evaluate(\n performance?: Performance>,\n ): Future>> {\n const outcomes = Cache.empty();\n\n return Future.traverse(this._rules, (rule) =>\n rule.evaluate(this._input, this._oracle, outcomes, performance),\n ).map(Iterable.flatten);\n }\n}\n" + }, + "packages/alfa-act/src/cache.ts": { + "language": "typescript", + "mutants": [ + { + "id": "5", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/cache.ts(13,26): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 15 + }, + "start": { + "column": 32, + "line": 13 + } + } + }, + { + "id": "6", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/cache.ts(24,6): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 35 + }, + "start": { + "column": 44, + "line": 24 + } + } + }, + { + "id": "7", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 31, + "line": 29 + }, + "start": { + "column": 9, + "line": 29 + } + } + }, + { + "id": "8", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "packages/alfa-act/src/cache.ts(34,5): error TS2322: Type 'Future>> | undefined' is not assignable to type 'Future>>'.\n Type 'undefined' is not assignable to type 'Future>>'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 31, + "line": 29 + }, + "start": { + "column": 9, + "line": 29 + } + } + }, + { + "id": "9", + "mutatorName": "EqualityOperator", + "replacement": "outcomes !== undefined", + "statusReason": "packages/alfa-act/src/cache.ts(34,5): error TS2322: Type 'Future>> | undefined' is not assignable to type 'Future>>'.\n Type 'undefined' is not assignable to type 'Future>>'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 31, + "line": 29 + }, + "start": { + "column": 9, + "line": 29 + } + } + }, + { + "id": "10", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/cache.ts(31,5): error TS2322: Type 'Future>> | undefined' is not assignable to type 'Future>>'.\n Type 'undefined' is not assignable to type 'Future>>'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 32 + }, + "start": { + "column": 33, + "line": 29 + } + } + } + ], + "source": "import type { Future } from \"@siteimprove/alfa-future\";\nimport type { Hashable } from \"@siteimprove/alfa-hash\";\nimport type { Thunk } from \"@siteimprove/alfa-thunk\";\n\nimport type { Outcome } from \"./outcome\";\nimport type { Question } from \"./question\";\nimport type { Rule } from \"./rule\";\n\n/**\n * @public\n */\nexport class Cache {\n public static empty(): Cache {\n return new Cache();\n }\n\n private readonly _storage = new WeakMap();\n\n private constructor() {}\n\n public get(\n rule: Rule,\n ifMissing: Thunk>>>,\n ): Future>> {\n let outcomes = this._storage.get(rule) as\n | Future>>\n | undefined;\n\n if (outcomes === undefined) {\n outcomes = ifMissing();\n this._storage.set(rule, outcomes);\n }\n\n return outcomes;\n }\n}\n" + }, + "packages/alfa-act/src/diagnostic.ts": { + "language": "typescript", + "mutants": [ + { + "id": "11", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/diagnostic.ts(13,38): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 15 + }, + "start": { + "column": 49, + "line": 13 + } + } + }, + { + "id": "12", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/diagnostic.ts(17,22): error TS2564: Property '_message' has no initializer and is not definitely assigned in the constructor.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 21 + }, + "start": { + "column": 42, + "line": 19 + } + } + }, + { + "id": "13", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/diagnostic.ts(23,14): error TS2378: A 'get' accessor must return a value.\npackages/alfa-act/src/diagnostic.ts(23,25): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 25 + }, + "start": { + "column": 32, + "line": 23 + } + } + }, + { + "id": "14", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/diagnostic.ts(31,34): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 33 + }, + "start": { + "column": 42, + "line": 31 + } + } + }, + { + "id": "15", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 75, + "line": 32 + }, + "start": { + "column": 12, + "line": 32 + } + } + }, + { + "id": "16", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 75, + "line": 32 + }, + "start": { + "column": 12, + "line": 32 + } + } + }, + { + "id": "17", + "mutatorName": "LogicalOperator", + "replacement": "value instanceof Diagnostic || value._message === this._message", + "statusReason": "packages/alfa-act/src/diagnostic.ts(32,43): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 75, + "line": 32 + }, + "start": { + "column": 12, + "line": 32 + } + } + }, + { + "id": "18", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 75, + "line": 32 + }, + "start": { + "column": 43, + "line": 32 + } + } + }, + { + "id": "19", + "mutatorName": "EqualityOperator", + "replacement": "value._message !== this._message", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 75, + "line": 32 + }, + "start": { + "column": 43, + "line": 32 + } + } + }, + { + "id": "20", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 37 + }, + "start": { + "column": 27, + "line": 35 + } + } + }, + { + "id": "21", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/diagnostic.ts(39,20): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 43 + }, + "start": { + "column": 36, + "line": 39 + } + } + }, + { + "id": "22", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/diagnostic.ts(40,5): error TS2741: Property 'message' is missing in type '{}' but required in type 'JSON'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 42 + }, + "start": { + "column": 12, + "line": 40 + } + } + }, + { + "id": "23", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/diagnostic.ts(55,49): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 57 + }, + "start": { + "column": 69, + "line": 55 + } + } + }, + { + "id": "24", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 60, + "line": 59 + }, + "start": { + "column": 38, + "line": 59 + } + } + }, + { + "id": "25", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/diagnostic.ts(62,36): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 2, + "line": 64 + }, + "start": { + "column": 43, + "line": 62 + } + } + }, + { + "id": "26", + "mutatorName": "MethodExpression", + "replacement": "input", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 22, + "line": 63 + }, + "start": { + "column": 10, + "line": 63 + } + } + }, + { + "id": "27", + "mutatorName": "Regex", + "replacement": "/\\s/g", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 37, + "line": 63 + }, + "start": { + "column": 31, + "line": 63 + } + } + }, + { + "id": "28", + "mutatorName": "Regex", + "replacement": "/\\S+/g", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 37, + "line": 63 + }, + "start": { + "column": 31, + "line": 63 + } + } + }, + { + "id": "29", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 42, + "line": 63 + }, + "start": { + "column": 39, + "line": 63 + } + } + } + ], + "source": "import { Equatable } from \"@siteimprove/alfa-equatable\";\nimport { Hash, Hashable } from \"@siteimprove/alfa-hash\";\nimport { Serializable } from \"@siteimprove/alfa-json\";\n\nimport * as json from \"@siteimprove/alfa-json\";\n\n/**\n * @public\n */\nexport class Diagnostic\n implements Equatable, Hashable, Serializable\n{\n public static of(message: string): Diagnostic {\n return new Diagnostic(normalize(message));\n }\n\n protected readonly _message: string;\n\n protected constructor(message: string) {\n this._message = message;\n }\n\n public get message(): string {\n return this._message;\n }\n\n public equals(value: Diagnostic): boolean;\n\n public equals(value: unknown): value is this;\n\n public equals(value: unknown): boolean {\n return value instanceof Diagnostic && value._message === this._message;\n }\n\n public hash(hash: Hash) {\n hash.writeString(this._message);\n }\n\n public toJSON(): Diagnostic.JSON {\n return {\n message: this._message,\n };\n }\n}\n\n/**\n * @public\n */\nexport namespace Diagnostic {\n export interface JSON {\n [key: string]: json.JSON;\n message: string;\n }\n\n export function isDiagnostic(value: unknown): value is Diagnostic {\n return value instanceof Diagnostic;\n }\n\n export const empty = Diagnostic.of(\"No extra information\");\n}\n\nfunction normalize(input: string): string {\n return input.trim().replace(/\\s+/g, \" \");\n}\n" + }, + "packages/alfa-act/src/interview.ts": { + "language": "typescript", + "mutants": [ + { + "id": "30", + "mutatorName": "BooleanLiteral", + "replacement": "true", + "statusReason": "packages/alfa-rules/test/sia-dr6/rule.spec.js(14,7): evaluate() passes an html element which has identical primary language subtags for its lang and xml:lang attributes\n\nExpected values to be strictly deep-equal:\n+ actual - expected ... Lines skipped\n\n [\n {\n...\n ]\n ],\n+ mode: 'semiAuto',\n- mode: 'automatic',\n outcome: 'passed',\n...\n }\n }\n ]\n\n\n\nfile:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60\n\t\terror = new Error(message);\n\t\t ^\n\nError: Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-dr6/rule.spec.js\n at makeError (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60:11)\n at handlePromise (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/index.js:124:26)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async test (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/scripts/stryker-test.mjs:13:30) {\n shortMessage: 'Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-dr6/rule.spec.js',\n command: '/home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-dr6/rule.spec.js',\n escapedCommand: '\"/home/rcj/.nvm/versions/node/v18.16.0/bin/node\" \"packages/alfa-rules/test/sia-dr6/rule.spec.js\"',\n exitCode: 1,\n signal: undefined,\n signalDescription: undefined,\n stdout: undefined,\n stderr: undefined,\n cwd: '/home/rcj/repos/alfa/.stryker-tmp/sandbox6670957',\n failed: true,\n timedOut: false,\n isCanceled: false,\n killed: false\n}\n\nNode.js v18.16.0\n", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "0" + ], + "coveredBy": [], + "location": { + "end": { + "column": 32, + "line": 95 + }, + "start": { + "column": 27, + "line": 95 + } + } + }, + { + "id": "31", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/interview.ts(96,6): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 129 + }, + "start": { + "column": 77, + "line": 96 + } + } + }, + { + "id": "32", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "packages/alfa-act/src/interview.ts(100,21): error TS2339: Property 'isRhetorical' does not exist on type 'Interview'.\n Property 'isRhetorical' does not exist on type 'ANSWER'.\npackages/alfa-act/src/interview.ts(101,49): error TS2339: Property 'answer' does not exist on type 'Interview'.\n Property 'answer' does not exist on type 'ANSWER'.\npackages/alfa-act/src/interview.ts(103,31): error TS2345: Argument of type 'Interview' is not assignable to parameter of type 'Question'.\n Type 'ANSWER' is not assignable to type 'Question'.\npackages/alfa-act/src/interview.ts(108,27): error TS2339: Property 'fallback' does not exist on type 'Interview'.\n Property 'fallback' does not exist on type 'ANSWER'.\npackages/alfa-act/src/interview.ts(110,28): error TS2339: Property 'answer' does not exist on type 'Interview'.\n Property 'answer' does not exist on type 'ANSWER'.\npackages/alfa-act/src/interview.ts(121,47): error TS2339: Property 'diagnostic' does not exist on type 'Interview'.\n Property 'diagnostic' does not exist on type 'ANSWER'.\npackages/alfa-act/src/interview.ts(128,5): error TS2322: Type 'Future, boolean], [Diagnostic, boolean]>>' is not assignable to type 'Future>'.\n Type 'Either<[Interview, boolean], [Diagnostic, boolean]>' is not assignable to type 'Either<[ANSWER, boolean], [Diagnostic, boolean]>'.\n Type '[Interview, boolean]' is not assignable to type '[ANSWER, boolean]'.\n Type at position 0 in source is not compatible with type at position 0 in target.\n Type 'Interview' is not assignable to type 'ANSWER'.\n 'ANSWER' could be instantiated with an arbitrary type which could be unrelated to 'Interview'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 38, + "line": 97 + }, + "start": { + "column": 9, + "line": 97 + } + } + }, + { + "id": "33", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "packages/alfa-act/src/interview.ts(100,21): error TS2339: Property 'isRhetorical' does not exist on type 'Interview'.\n Property 'isRhetorical' does not exist on type 'ANSWER'.\npackages/alfa-act/src/interview.ts(101,49): error TS2339: Property 'answer' does not exist on type 'Interview'.\n Property 'answer' does not exist on type 'ANSWER'.\npackages/alfa-act/src/interview.ts(103,31): error TS2345: Argument of type 'Interview' is not assignable to parameter of type 'Question'.\n Type 'ANSWER' is not assignable to type 'Question'.\npackages/alfa-act/src/interview.ts(108,27): error TS2339: Property 'fallback' does not exist on type 'Interview'.\n Property 'fallback' does not exist on type 'ANSWER'.\npackages/alfa-act/src/interview.ts(110,28): error TS2339: Property 'answer' does not exist on type 'Interview'.\n Property 'answer' does not exist on type 'ANSWER'.\npackages/alfa-act/src/interview.ts(121,47): error TS2339: Property 'diagnostic' does not exist on type 'Interview'.\n Property 'diagnostic' does not exist on type 'ANSWER'.\npackages/alfa-act/src/interview.ts(128,5): error TS2322: Type 'Future, boolean], [Diagnostic, boolean]>>' is not assignable to type 'Future>'.\n Type 'Either<[Interview, boolean], [Diagnostic, boolean]>' is not assignable to type 'Either<[ANSWER, boolean], [Diagnostic, boolean]>'.\n Type '[Interview, boolean]' is not assignable to type '[ANSWER, boolean]'.\n Type at position 0 in source is not compatible with type at position 0 in target.\n Type 'Interview' is not assignable to type 'ANSWER'.\n 'ANSWER' could be instantiated with an arbitrary type which could be unrelated to 'Interview'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 38, + "line": 97 + }, + "start": { + "column": 9, + "line": 97 + } + } + }, + { + "id": "34", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/interview.ts(100,5): error TS2322: Type 'Future, boolean], [Diagnostic, boolean]>>' is not assignable to type 'Future>'.\n Type 'Either<[Interview, boolean], [Diagnostic, boolean]>' is not assignable to type 'Either<[ANSWER, boolean], [Diagnostic, boolean]>'.\n Type '[Interview, boolean]' is not assignable to type '[ANSWER, boolean]'.\n Type at position 0 in source is not compatible with type at position 0 in target.\n Type 'Interview' is not assignable to type 'ANSWER'.\n 'ANSWER' could be instantiated with an arbitrary type which could be unrelated to 'Interview'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 125 + }, + "start": { + "column": 40, + "line": 97 + } + } + }, + { + "id": "35", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "packages/alfa-act/src/interview.ts(101,49): error TS2554: Expected 1 arguments, but got 0.\npackages/alfa-act/src/interview.ts(103,31): error TS2345: Argument of type 'Interview' is not assignable to parameter of type 'Question'.\n Type 'ANSWER' is not assignable to type 'Question'.\npackages/alfa-act/src/interview.ts(108,27): error TS2339: Property 'fallback' does not exist on type 'Interview'.\n Property 'fallback' does not exist on type 'ANSWER'.\npackages/alfa-act/src/interview.ts(110,28): error TS2339: Property 'answer' does not exist on type 'Interview'.\n Property 'answer' does not exist on type 'ANSWER'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 35, + "line": 100 + }, + "start": { + "column": 11, + "line": 100 + } + } + }, + { + "id": "36", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "packages/alfa-act/src/interview.ts(101,49): error TS2339: Property 'answer' does not exist on type 'Interview'.\n Property 'answer' does not exist on type 'ANSWER'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 35, + "line": 100 + }, + "start": { + "column": 11, + "line": 100 + } + } + }, + { + "id": "37", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/interview.ts(112,14): error TS2454: Variable 'answer' is used before being assigned.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 102 + }, + "start": { + "column": 37, + "line": 100 + } + } + }, + { + "id": "38", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/interview.ts(104,14): error TS2454: Variable 'answer' is used before being assigned.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 112 + }, + "start": { + "column": 14, + "line": 102 + } + } + }, + { + "id": "39", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "packages/alfa-act/src/interview.ts(103,9): error TS2322: Type 'Future' is not assignable to type 'Future>>'.\n Type 'undefined' is not assignable to type 'Option>'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 51, + "line": 110 + }, + "start": { + "column": 46, + "line": 103 + } + } + }, + { + "id": "40", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "packages/alfa-rules/test/sia-r109/rule.spec.js(21,7): evaluate() passes documents whose lang attribute matches the main language\n\nExpected values to be strictly deep-equal:\n+ actual - expected ... Lines skipped\n\n [\n {\n...\n ]\n ],\n+ mode: 'automatic',\n- mode: 'semiAuto',\n outcome: 'passed',\n...\n }\n }\n ]\n\n\n\nfile:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60\n\t\terror = new Error(message);\n\t\t ^\n\nError: Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r109/rule.spec.js\n at makeError (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60:11)\n at handlePromise (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/index.js:124:26)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async test (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/scripts/stryker-test.mjs:13:30) {\n shortMessage: 'Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r109/rule.spec.js',\n command: '/home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r109/rule.spec.js',\n escapedCommand: '\"/home/rcj/.nvm/versions/node/v18.16.0/bin/node\" \"packages/alfa-rules/test/sia-r109/rule.spec.js\"',\n exitCode: 1,\n signal: undefined,\n signalDescription: undefined,\n stdout: undefined,\n stderr: undefined,\n cwd: '/home/rcj/repos/alfa/.stryker-tmp/sandbox6670957',\n failed: true,\n timedOut: false,\n isCanceled: false,\n killed: false\n}\n\n\nNode.js v18.16.0\n", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "0" + ], + "coveredBy": [], + "location": { + "end": { + "column": 44, + "line": 106 + }, + "start": { + "column": 18, + "line": 106 + } + } + }, + { + "id": "41", + "mutatorName": "BooleanLiteral", + "replacement": "false", + "statusReason": "packages/alfa-rules/test/sia-r109/rule.spec.js(21,7): evaluate() passes documents whose lang attribute matches the main language\n\nExpected values to be strictly deep-equal:\n+ actual - expected ... Lines skipped\n\n [\n {\n...\n ]\n ],\n+ mode: 'automatic',\n- mode: 'semiAuto',\n outcome: 'passed',\n...\n }\n }\n ]\n\n\n\nfile:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60\n\t\terror = new Error(message);\n\t\t ^\n\nError: Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r109/rule.spec.js\n at makeError (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60:11)\n at handlePromise (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/index.js:124:26)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async test (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/scripts/stryker-test.mjs:13:30) {\n shortMessage: 'Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r109/rule.spec.js',\n command: '/home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r109/rule.spec.js',\n escapedCommand: '\"/home/rcj/.nvm/versions/node/v18.16.0/bin/node\" \"packages/alfa-rules/test/sia-r109/rule.spec.js\"',\n exitCode: 1,\n signal: undefined,\n signalDescription: undefined,\n stdout: undefined,\n stderr: undefined,\n cwd: '/home/rcj/repos/alfa/.stryker-tmp/sandbox6670957',\n failed: true,\n timedOut: false,\n isCanceled: false,\n killed: false\n}\n\nNode.js v18.16.0\n", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "0" + ], + "coveredBy": [], + "location": { + "end": { + "column": 43, + "line": 106 + }, + "start": { + "column": 39, + "line": 106 + } + } + }, + { + "id": "42", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "packages/alfa-act/src/interview.ts(114,35): error TS2322: Type 'undefined' is not assignable to type 'Future>'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 12, + "line": 123 + }, + "start": { + "column": 29, + "line": 114 + } + } + }, + { + "id": "43", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "packages/alfa-act/src/interview.ts(115,9): error TS2322: Type 'Future> | undefined' is not assignable to type 'Future>'.\n Type 'undefined' is not assignable to type 'Future>'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 69, + "line": 117 + }, + "start": { + "column": 16, + "line": 117 + } + } + }, + { + "id": "44", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "packages/alfa-act/src/interview.ts(115,9): error TS2322: Type 'Future> | undefined' is not assignable to type 'Future>'.\n Type 'undefined' is not assignable to type 'Future>'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 14, + "line": 122 + }, + "start": { + "column": 22, + "line": 119 + } + } + } + ], + "source": "import { Future } from \"@siteimprove/alfa-future\";\nimport { Either } from \"@siteimprove/alfa-either\";\nimport type { Hashable } from \"@siteimprove/alfa-hash\";\nimport { Option } from \"@siteimprove/alfa-option\";\nimport { Tuple } from \"@siteimprove/alfa-tuple\";\n\nimport type { Diagnostic } from \"./diagnostic\";\nimport type { Oracle } from \"./oracle\";\nimport { Question } from \"./question\";\nimport type { Rule } from \"./rule\";\n\n/**\n * As `Interview` is a recursive type that models nested chains of `Question`s,\n * we need to limit the depth to which this recursion can happen to avoid the\n * TypeScript compiler going into an infinite type resolution loop. This is done\n * by maintaining a pointer, `D extends number` that counts down to -1 at which\n * point the recursion will stop. Given a pointer `D`, the `Depths` tuple\n * provides `D - 1 = Depths[D]`.\n */\ntype Depths = [-1, 0, 1, 2];\n\n/**\n * @public\n *\n * An Interview is either a direct ANSWER; or a question who is ultimately going\n * to produce one, possibly through more questions (aka, an Interview).\n *\n * The QUESTION type maps questions' URI to the expected type of answer, both as\n * a JavaScript manipulable representation (T), and an actual type (A).\n * The SUBJECT and CONTEXT types are the subject and context of the question.\n */\nexport type Interview<\n QUESTION extends Question.Metadata,\n SUBJECT,\n CONTEXT,\n ANSWER,\n D extends number = Interview.MaxDepth,\n> =\n | ANSWER\n | {\n [URI in keyof QUESTION]: Question<\n QUESTION[URI][0],\n SUBJECT,\n CONTEXT,\n QUESTION[URI][1],\n D extends -1\n ? ANSWER\n : Interview,\n URI extends string ? URI : never\n >;\n }[keyof QUESTION];\n\n/**\n * @public\n */\nexport namespace Interview {\n /**\n * @internal\n */\n export type MaxDepth = 3;\n\n /**\n * Conduct an interview:\n * * if it is an answer, just send it back;\n * * if it is a rhetorical question, fetch its answer and recursively conduct\n * an interview on it;\n * * if it is a true question, ask it to the oracle and recursively conduct an\n * interview on the result.\n *\n * Oracles must return Options, to have the possibility to not answer a given\n * question (by returning None).\n * Oracles must return Futures, because the full interview process is essentially\n * async (e.g., asking through a CLI).\n *\n * The final result of the interview is either a final answer (Left), or\n * a diagnostic (Right) explaining why a final answer couldn't be found.\n * Final answer will be turned into Passed/Failed outcomes, and diagnostic\n * into Can't tell; the diagnostic is provided by the last unanswered question.\n *\n * In both cases, we also record whether the oracle was actually used;\n * this is useful to record the mode (auto/semi-auto) of the outcome.\n */\n export function conduct<\n INPUT,\n TARGET extends Hashable,\n QUESTION extends Question.Metadata,\n SUBJECT,\n ANSWER,\n >(\n // Questions' contexts are guaranteed to be (potential) test target of\n // the rule.\n interview: Interview,\n rule: Rule,\n oracle: Oracle,\n oracleUsed: boolean = false,\n ): Future, Tuple<[Diagnostic, boolean]>>> {\n if (interview instanceof Question) {\n let answer: Future>>;\n\n if (interview.isRhetorical()) {\n answer = Future.now(Option.of(interview.answer()));\n } else {\n answer = oracle(rule, interview).map((option) =>\n option\n // Record that the oracle was successfully used\n .tee((_) => (oracleUsed = true))\n // If oracle has no answer, use fallback\n .or(interview.fallback)\n // Need to bind due to eta-contraction losing `this`.\n .map(interview.answer.bind(interview)),\n );\n }\n\n return answer.flatMap((answer) =>\n answer\n // Recursively conduct an interview\n .map((answer) => conduct(answer, rule, oracle, oracleUsed))\n // If we still don't have a final answer, return the last diagnostic.\n .getOrElse(() =>\n Future.now(\n Either.right(Tuple.of(interview.diagnostic, oracleUsed)),\n ),\n ),\n );\n }\n\n // The interview is not a question, so it is a final answer.\n return Future.now(Either.left(Tuple.of(interview, oracleUsed)));\n }\n}\n" + }, + "packages/alfa-act/src/outcome.ts": { + "language": "typescript", + "mutants": [ + { + "id": "45", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(41,20): error TS2564: Property '_outcome' has no initializer and is not definitely assigned in the constructor.\npackages/alfa-act/src/outcome.ts(46,22): error TS2564: Property '_rule' has no initializer and is not definitely assigned in the constructor.\npackages/alfa-act/src/outcome.ts(50,22): error TS2564: Property '_mode' has no initializer and is not definitely assigned in the constructor.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 60 + }, + "start": { + "column": 5, + "line": 56 + } + } + }, + { + "id": "46", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(65,14): error TS2378: A 'get' accessor must return a value.\npackages/alfa-act/src/outcome.ts(65,25): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 67 + }, + "start": { + "column": 27, + "line": 65 + } + } + }, + { + "id": "47", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(73,14): error TS2378: A 'get' accessor must return a value.\npackages/alfa-act/src/outcome.ts(73,22): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 75 + }, + "start": { + "column": 39, + "line": 73 + } + } + }, + { + "id": "48", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(80,14): error TS2378: A 'get' accessor must return a value.\npackages/alfa-act/src/outcome.ts(80,22): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 82 + }, + "start": { + "column": 35, + "line": 80 + } + } + }, + { + "id": "49", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(84,14): error TS2378: A 'get' accessor must return a value.\npackages/alfa-act/src/outcome.ts(84,28): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 86 + }, + "start": { + "column": 36, + "line": 84 + } + } + }, + { + "id": "50", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "packages/alfa-rules/test/sia-r27/rule.spec.js(74,7): evaluate() is inapplicable when Applicability questions are unanswered\n\nExpected values to be strictly deep-equal:\n+ actual - expected ... Lines skipped\n\n [\n {\n+ mode: 'semiAuto',\n- mode: 'automatic',\n outcome: 'inapplicable',\n...\n }\n }\n ]\n\n\n\nfile:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60\n\t\terror = new Error(message);\n\t\t ^\n\nError: Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r27/rule.spec.js\n at makeError (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60:11)\n at handlePromise (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/index.js:124:26)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async test (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/scripts/stryker-test.mjs:13:30) {\n shortMessage: 'Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r27/rule.spec.js',\n command: '/home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r27/rule.spec.js',\n escapedCommand: '\"/home/rcj/.nvm/versions/node/v18.16.0/bin/node\" \"packages/alfa-rules/test/sia-r27/rule.spec.js\"',\n exitCode: 1,\n signal: undefined,\n signalDescription: undefined,\n stdout: undefined,\n stderr: undefined,\n cwd: '/home/rcj/repos/alfa/.stryker-tmp/sandbox6670957',\n failed: true,\n timedOut: false,\n isCanceled: false,\n killed: false\n}\n\nNode.js v18.16.0\n", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "0" + ], + "coveredBy": [], + "location": { + "end": { + "column": 48, + "line": 85 + }, + "start": { + "column": 12, + "line": 85 + } + } + }, + { + "id": "51", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "packages/alfa-rules/test/sia-r35/rule.spec.js(16,7): evaluate() passes when R32 passes\n\nExpected values to be strictly deep-equal:\n+ actual - expected ... Lines skipped\n\n [\n {\n...\n ]\n ],\n+ mode: 'automatic',\n- mode: 'semiAuto',\n outcome: 'passed',\n...\n }\n }\n ]\n\n\n\nfile:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60\n\t\terror = new Error(message);\n\t\t ^\n\nError: Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r35/rule.spec.js\n at makeError (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60:11)\n at handlePromise (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/index.js:124:26)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async test (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/scripts/stryker-test.mjs:13:30) {\n shortMessage: 'Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r35/rule.spec.js',\n command: '/home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r35/rule.spec.js',\n escapedCommand: '\"/home/rcj/.nvm/versions/node/v18.16.0/bin/node\" \"packages/alfa-rules/test/sia-r35/rule.spec.js\"',\n exitCode: 1,\n signal: undefined,\n signalDescription: undefined,\n stdout: undefined,\n stderr: undefined,\n cwd: '/home/rcj/repos/alfa/.stryker-tmp/sandbox6670957',\n failed: true,\n timedOut: false,\n isCanceled: false,\n killed: false\n}\n\n\nNode.js v18.16.0\n", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "0" + ], + "coveredBy": [], + "location": { + "end": { + "column": 48, + "line": 85 + }, + "start": { + "column": 12, + "line": 85 + } + } + }, + { + "id": "52", + "mutatorName": "EqualityOperator", + "replacement": "this._mode !== Outcome.Mode.SemiAuto", + "statusReason": "packages/alfa-rules/test/sia-r27/rule.spec.js(16,7): evaluate() passes when R22 passes\n\nExpected values to be strictly deep-equal:\n+ actual - expected ... Lines skipped\n\n [\n {\n...\n ]\n ],\n+ mode: 'automatic',\n- mode: 'semiAuto',\n outcome: 'passed',\n...\n }\n }\n ]\n\n\n\nfile:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60\n\t\terror = new Error(message);\n\t\t ^\n\nError: Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r27/rule.spec.js\n at makeError (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60:11)\n at handlePromise (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/index.js:124:26)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async test (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/scripts/stryker-test.mjs:13:30) {\n shortMessage: 'Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r27/rule.spec.js',\n command: '/home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r27/rule.spec.js',\n escapedCommand: '\"/home/rcj/.nvm/versions/node/v18.16.0/bin/node\" \"packages/alfa-rules/test/sia-r27/rule.spec.js\"',\n exitCode: 1,\n signal: undefined,\n signalDescription: undefined,\n stdout: undefined,\n stderr: undefined,\n cwd: '/home/rcj/repos/alfa/.stryker-tmp/sandbox6670957',\n failed: true,\n timedOut: false,\n isCanceled: false,\n killed: false\n}\n\nNode.js v18.16.0\n", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "0" + ], + "coveredBy": [], + "location": { + "end": { + "column": 48, + "line": 85 + }, + "start": { + "column": 12, + "line": 85 + } + } + }, + { + "id": "53", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(88,14): error TS2378: A 'get' accessor must return a value.\npackages/alfa-act/src/outcome.ts(88,24): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 90 + }, + "start": { + "column": 38, + "line": 88 + } + } + }, + { + "id": "54", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(102,34): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 109 + }, + "start": { + "column": 42, + "line": 102 + } + } + }, + { + "id": "55", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 33, + "line": 107 + }, + "start": { + "column": 7, + "line": 104 + } + } + }, + { + "id": "56", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 33, + "line": 107 + }, + "start": { + "column": 7, + "line": 104 + } + } + }, + { + "id": "57", + "mutatorName": "LogicalOperator", + "replacement": "value instanceof Outcome && value._rule.equals(this._rule) && value._outcome === this._outcome || value._mode === this._mode", + "statusReason": "packages/alfa-act/src/outcome.ts(104,105): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 33, + "line": 107 + }, + "start": { + "column": 7, + "line": 104 + } + } + }, + { + "id": "58", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "packages/alfa-act/src/outcome.ts(105,7): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 39, + "line": 106 + }, + "start": { + "column": 7, + "line": 104 + } + } + }, + { + "id": "59", + "mutatorName": "LogicalOperator", + "replacement": "value instanceof Outcome && value._rule.equals(this._rule) || value._outcome === this._outcome", + "statusReason": "packages/alfa-act/src/outcome.ts(104,69): error TS18046: 'value' is of type 'unknown'.\npackages/alfa-act/src/outcome.ts(105,7): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 39, + "line": 106 + }, + "start": { + "column": 7, + "line": 104 + } + } + }, + { + "id": "60", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "packages/alfa-act/src/outcome.ts(105,7): error TS18046: 'value' is of type 'unknown'.\npackages/alfa-act/src/outcome.ts(106,7): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 37, + "line": 105 + }, + "start": { + "column": 7, + "line": 104 + } + } + }, + { + "id": "61", + "mutatorName": "LogicalOperator", + "replacement": "value instanceof Outcome || value._rule.equals(this._rule)", + "statusReason": "packages/alfa-act/src/outcome.ts(104,35): error TS18046: 'value' is of type 'unknown'.\npackages/alfa-act/src/outcome.ts(105,7): error TS18046: 'value' is of type 'unknown'.\npackages/alfa-act/src/outcome.ts(106,7): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 37, + "line": 105 + }, + "start": { + "column": 7, + "line": 104 + } + } + }, + { + "id": "62", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 39, + "line": 106 + }, + "start": { + "column": 7, + "line": 106 + } + } + }, + { + "id": "63", + "mutatorName": "EqualityOperator", + "replacement": "value._outcome !== this._outcome", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 39, + "line": 106 + }, + "start": { + "column": 7, + "line": 106 + } + } + }, + { + "id": "64", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 33, + "line": 107 + }, + "start": { + "column": 7, + "line": 107 + } + } + }, + { + "id": "65", + "mutatorName": "EqualityOperator", + "replacement": "value._mode !== this._mode", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 33, + "line": 107 + }, + "start": { + "column": 7, + "line": 107 + } + } + }, + { + "id": "66", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 115 + }, + "start": { + "column": 33, + "line": 111 + } + } + }, + { + "id": "67", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(117,20): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 123 + }, + "start": { + "column": 36, + "line": 117 + } + } + }, + { + "id": "68", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(118,5): error TS2739: Type '{}' is missing the following properties from type 'JSON': outcome, rule, mode\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 122 + }, + "start": { + "column": 12, + "line": 118 + } + } + }, + { + "id": "69", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(125,20): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 4, + "line": 136 + }, + "start": { + "column": 33, + "line": 125 + } + } + }, + { + "id": "70", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(126,5): error TS2739: Type '{}' is missing the following properties from type 'EARL': \"@type\", \"earl:mode\", \"earl:test\"\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 135 + }, + "start": { + "column": 12, + "line": 126 + } + } + }, + { + "id": "71", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 129 + }, + "start": { + "column": 19, + "line": 127 + } + } + }, + { + "id": "72", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(128,9): error TS2322: Type '\"\"' is not assignable to type '\"http://www.w3.org/ns/earl#\"'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 43, + "line": 128 + }, + "start": { + "column": 15, + "line": 128 + } + } + }, + { + "id": "73", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(130,7): error TS2322: Type '\"\"' is not assignable to type '\"earl:Assertion\"'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 32, + "line": 130 + }, + "start": { + "column": 16, + "line": 130 + } + } + }, + { + "id": "74", + "mutatorName": "StringLiteral", + "replacement": "``", + "statusReason": "packages/alfa-act/src/outcome.ts(131,7): error TS2322: Type '\"\"' is not assignable to type '\"earl:automatic\" | \"earl:semiAuto\"'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 40, + "line": 131 + }, + "start": { + "column": 20, + "line": 131 + } + } + }, + { + "id": "75", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(132,7): error TS2741: Property '\"@id\"' is missing in type '{}' but required in type '{ \"@id\": string; }'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 134 + }, + "start": { + "column": 20, + "line": 132 + } + } + }, + { + "id": "76", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(193,8): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 195 + }, + "start": { + "column": 27, + "line": 193 + } + } + }, + { + "id": "77", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(197,22): error TS2564: Property '_target' has no initializer and is not definitely assigned in the constructor.\npackages/alfa-act/src/outcome.ts(198,22): error TS2564: Property '_expectations' has no initializer and is not definitely assigned in the constructor.\npackages/alfa-act/src/outcome.ts(202,5): error TS2377: Constructors for derived classes must contain a 'super' call.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 214 + }, + "start": { + "column": 7, + "line": 209 + } + } + }, + { + "id": "78", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(216,16): error TS2378: A 'get' accessor must return a value.\npackages/alfa-act/src/outcome.ts(216,26): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 218 + }, + "start": { + "column": 28, + "line": 216 + } + } + }, + { + "id": "79", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(220,16): error TS2378: A 'get' accessor must return a value.\npackages/alfa-act/src/outcome.ts(220,32): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 224 + }, + "start": { + "column": 8, + "line": 222 + } + } + }, + { + "id": "80", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(232,36): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 239 + }, + "start": { + "column": 44, + "line": 232 + } + } + }, + { + "id": "81", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 55, + "line": 237 + }, + "start": { + "column": 9, + "line": 234 + } + } + }, + { + "id": "82", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 55, + "line": 237 + }, + "start": { + "column": 9, + "line": 234 + } + } + }, + { + "id": "83", + "mutatorName": "LogicalOperator", + "replacement": "super.equals(value) && value instanceof Passed && Equatable.equals(value._target, this._target) || value._expectations.equals(this._expectations)", + "statusReason": "packages/alfa-act/src/outcome.ts(234,108): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 55, + "line": 237 + }, + "start": { + "column": 9, + "line": 234 + } + } + }, + { + "id": "84", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "packages/alfa-act/src/outcome.ts(235,9): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 54, + "line": 236 + }, + "start": { + "column": 9, + "line": 234 + } + } + }, + { + "id": "85", + "mutatorName": "LogicalOperator", + "replacement": "super.equals(value) && value instanceof Passed || Equatable.equals(value._target, this._target)", + "statusReason": "packages/alfa-act/src/outcome.ts(234,76): error TS18046: 'value' is of type 'unknown'.\npackages/alfa-act/src/outcome.ts(235,9): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 54, + "line": 236 + }, + "start": { + "column": 9, + "line": 234 + } + } + }, + { + "id": "86", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "packages/alfa-act/src/outcome.ts(235,26): error TS18046: 'value' is of type 'unknown'.\npackages/alfa-act/src/outcome.ts(236,9): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 32, + "line": 235 + }, + "start": { + "column": 9, + "line": 234 + } + } + }, + { + "id": "87", + "mutatorName": "LogicalOperator", + "replacement": "super.equals(value) || value instanceof Passed", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 32, + "line": 235 + }, + "start": { + "column": 9, + "line": 234 + } + } + }, + { + "id": "88", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 248 + }, + "start": { + "column": 29, + "line": 241 + } + } + }, + { + "id": "89", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 247 + }, + "start": { + "column": 54, + "line": 244 + } + } + }, + { + "id": "90", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(250,22): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 258 + }, + "start": { + "column": 37, + "line": 250 + } + } + }, + { + "id": "91", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(251,7): error TS2739: Type '{}' is missing the following properties from type 'JSON': target, expectations, outcome, rule, mode\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 257 + }, + "start": { + "column": 14, + "line": 251 + } + } + }, + { + "id": "92", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "packages/alfa-act/src/outcome.ts(254,9): error TS2322: Type 'undefined[]' is not assignable to type '[string, JSON][]'.\n Type 'undefined' is not assignable to type '[string, JSON]'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 65, + "line": 256 + }, + "start": { + "column": 16, + "line": 256 + } + } + }, + { + "id": "93", + "mutatorName": "ArrayDeclaration", + "replacement": "[]", + "statusReason": "packages/alfa-act/src/outcome.ts(254,9): error TS2322: Type '[][]' is not assignable to type '[string, JSON][]'.\n Type '[]' is not assignable to type '[string, JSON]'.\n Source has 0 element(s) but target requires 2.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 65, + "line": 256 + }, + "start": { + "column": 39, + "line": 256 + } + } + }, + { + "id": "94", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(260,22): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 285 + }, + "start": { + "column": 34, + "line": 260 + } + } + }, + { + "id": "95", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(261,13): error TS2739: Type '{}' is missing the following properties from type 'EARL': \"earl:result\", \"@type\", \"earl:mode\", \"earl:test\"\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 278 + }, + "start": { + "column": 36, + "line": 261 + } + } + }, + { + "id": "96", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(263,9): error TS2739: Type '{}' is missing the following properties from type '{ \"@type\": \"earl:TestResult\"; \"earl:outcome\": { \"@id\": \"earl:passed\"; }; \"earl:info\": string; \"earl:pointer\"?: EARL | undefined; }': \"@type\", \"earl:outcome\", \"earl:info\"\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 10, + "line": 277 + }, + "start": { + "column": 24, + "line": 263 + } + } + }, + { + "id": "97", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(264,11): error TS2322: Type '\"\"' is not assignable to type '\"earl:TestResult\"'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 37, + "line": 264 + }, + "start": { + "column": 20, + "line": 264 + } + } + }, + { + "id": "98", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(265,11): error TS2741: Property '\"@id\"' is missing in type '{}' but required in type '{ \"@id\": \"earl:passed\"; }'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 12, + "line": 267 + }, + "start": { + "column": 27, + "line": 265 + } + } + }, + { + "id": "99", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(266,13): error TS2322: Type '\"\"' is not assignable to type '\"earl:passed\"'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 33, + "line": 266 + }, + "start": { + "column": 20, + "line": 266 + } + } + }, + { + "id": "100", + "mutatorName": "MethodExpression", + "replacement": "this._expectations.toArray().reduce((message, [, expectation]) =>\n// the outcome is passed, so all expectations should be Ok\nmessage + \"\\n\" + expectation.getUnsafe().message, \"\")", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 20, + "line": 276 + }, + "start": { + "column": 24, + "line": 268 + } + } + }, + { + "id": "101", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "packages/alfa-act/src/outcome.ts(268,24): error TS2532: Object is possibly 'undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 65, + "line": 273 + }, + "start": { + "column": 15, + "line": 271 + } + } + }, + { + "id": "102", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 31, + "line": 273 + }, + "start": { + "column": 27, + "line": 273 + } + } + }, + { + "id": "103", + "mutatorName": "StringLiteral", + "replacement": "\"Stryker was here!\"", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 17, + "line": 274 + }, + "start": { + "column": 15, + "line": 274 + } + } + }, + { + "id": "104", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 282 + }, + "start": { + "column": 69, + "line": 280 + } + } + }, + { + "id": "105", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(281,9): error TS2533: Object is possibly 'null' or 'undefined'.\npackages/alfa-act/src/outcome.ts(281,9): error TS7053: Element implicitly has an 'any' type because expression of type '\"earl:pointer\"' can't be used to index type 'string | number | boolean | Array | Object'.\n Property 'earl:pointer' does not exist on type 'string | number | boolean | Array | Object'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 30, + "line": 281 + }, + "start": { + "column": 17, + "line": 281 + } + } + }, + { + "id": "106", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(281,9): error TS7053: Element implicitly has an 'any' type because expression of type '\"\"' can't be used to index type '{ \"@type\": \"earl:TestResult\"; \"earl:outcome\": { \"@id\": \"earl:passed\"; }; \"earl:info\": string; \"earl:pointer\"?: EARL | undefined; }'.\n Property '' does not exist on type '{ \"@type\": \"earl:TestResult\"; \"earl:outcome\": { \"@id\": \"earl:passed\"; }; \"earl:info\": string; \"earl:pointer\"?: EARL | undefined; }'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 46, + "line": 281 + }, + "start": { + "column": 32, + "line": 281 + } + } + }, + { + "id": "107", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(287,23): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 312 + }, + "start": { + "column": 36, + "line": 287 + } + } + }, + { + "id": "108", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 55, + "line": 289 + }, + "start": { + "column": 9, + "line": 289 + } + } + }, + { + "id": "109", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 75, + "line": 293 + }, + "start": { + "column": 16, + "line": 293 + } + } + }, + { + "id": "110", + "mutatorName": "StringLiteral", + "replacement": "``", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 75, + "line": 293 + }, + "start": { + "column": 37, + "line": 293 + } + } + }, + { + "id": "111", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 21, + "line": 294 + }, + "start": { + "column": 17, + "line": 294 + } + } + }, + { + "id": "112", + "mutatorName": "ArrayDeclaration", + "replacement": "[\"Stryker was here\"]", + "statusReason": "packages/alfa-act/src/outcome.ts(296,49): error TS2559: Type 'string' has no properties in common with type 'Location'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 50, + "line": 296 + }, + "start": { + "column": 48, + "line": 296 + } + } + }, + { + "id": "113", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 300 + }, + "start": { + "column": 72, + "line": 298 + } + } + }, + { + "id": "114", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(302,7): error TS2741: Property 'message' is missing in type '{}' but required in type 'Result'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 311 + }, + "start": { + "column": 14, + "line": 302 + } + } + }, + { + "id": "115", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(304,9): error TS2322: Type '\"\"' is not assignable to type 'kind | undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 21, + "line": 304 + }, + "start": { + "column": 15, + "line": 304 + } + } + }, + { + "id": "116", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(305,9): error TS2322: Type '\"\"' is not assignable to type 'level | undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 22, + "line": 305 + }, + "start": { + "column": 16, + "line": 305 + } + } + }, + { + "id": "117", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 10, + "line": 309 + }, + "start": { + "column": 18, + "line": 306 + } + } + }, + { + "id": "118", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(352,24): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 354 + }, + "start": { + "column": 52, + "line": 352 + } + } + }, + { + "id": "119", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(372,8): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 374 + }, + "start": { + "column": 27, + "line": 372 + } + } + }, + { + "id": "120", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(376,22): error TS2564: Property '_target' has no initializer and is not definitely assigned in the constructor.\npackages/alfa-act/src/outcome.ts(377,22): error TS2564: Property '_expectations' has no initializer and is not definitely assigned in the constructor.\npackages/alfa-act/src/outcome.ts(381,5): error TS2377: Constructors for derived classes must contain a 'super' call.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 393 + }, + "start": { + "column": 7, + "line": 388 + } + } + }, + { + "id": "121", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(395,16): error TS2378: A 'get' accessor must return a value.\npackages/alfa-act/src/outcome.ts(395,26): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 397 + }, + "start": { + "column": 28, + "line": 395 + } + } + }, + { + "id": "122", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(399,16): error TS2378: A 'get' accessor must return a value.\npackages/alfa-act/src/outcome.ts(399,32): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 403 + }, + "start": { + "column": 8, + "line": 401 + } + } + }, + { + "id": "123", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(411,36): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 418 + }, + "start": { + "column": 44, + "line": 411 + } + } + }, + { + "id": "124", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 55, + "line": 416 + }, + "start": { + "column": 9, + "line": 413 + } + } + }, + { + "id": "125", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 55, + "line": 416 + }, + "start": { + "column": 9, + "line": 413 + } + } + }, + { + "id": "126", + "mutatorName": "LogicalOperator", + "replacement": "super.equals(value) && value instanceof Failed && Equatable.equals(value._target, this._target) || value._expectations.equals(this._expectations)", + "statusReason": "packages/alfa-act/src/outcome.ts(413,108): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 55, + "line": 416 + }, + "start": { + "column": 9, + "line": 413 + } + } + }, + { + "id": "127", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "packages/alfa-act/src/outcome.ts(414,9): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 54, + "line": 415 + }, + "start": { + "column": 9, + "line": 413 + } + } + }, + { + "id": "128", + "mutatorName": "LogicalOperator", + "replacement": "super.equals(value) && value instanceof Failed || Equatable.equals(value._target, this._target)", + "statusReason": "packages/alfa-act/src/outcome.ts(413,76): error TS18046: 'value' is of type 'unknown'.\npackages/alfa-act/src/outcome.ts(414,9): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 54, + "line": 415 + }, + "start": { + "column": 9, + "line": 413 + } + } + }, + { + "id": "129", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "packages/alfa-act/src/outcome.ts(414,26): error TS18046: 'value' is of type 'unknown'.\npackages/alfa-act/src/outcome.ts(415,9): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 32, + "line": 414 + }, + "start": { + "column": 9, + "line": 413 + } + } + }, + { + "id": "130", + "mutatorName": "LogicalOperator", + "replacement": "super.equals(value) || value instanceof Failed", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 32, + "line": 414 + }, + "start": { + "column": 9, + "line": 413 + } + } + }, + { + "id": "131", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 427 + }, + "start": { + "column": 29, + "line": 420 + } + } + }, + { + "id": "132", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 426 + }, + "start": { + "column": 54, + "line": 423 + } + } + }, + { + "id": "133", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(429,22): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 437 + }, + "start": { + "column": 37, + "line": 429 + } + } + }, + { + "id": "134", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(430,7): error TS2739: Type '{}' is missing the following properties from type 'JSON': target, expectations, outcome, rule, mode\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 436 + }, + "start": { + "column": 14, + "line": 430 + } + } + }, + { + "id": "135", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "statusReason": "packages/alfa-act/src/outcome.ts(433,9): error TS2322: Type 'undefined[]' is not assignable to type '[string, JSON][]'.\n Type 'undefined' is not assignable to type '[string, JSON]'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 65, + "line": 435 + }, + "start": { + "column": 16, + "line": 435 + } + } + }, + { + "id": "136", + "mutatorName": "ArrayDeclaration", + "replacement": "[]", + "statusReason": "packages/alfa-act/src/outcome.ts(433,9): error TS2322: Type '[][]' is not assignable to type '[string, JSON][]'.\n Type '[]' is not assignable to type '[string, JSON]'.\n Source has 0 element(s) but target requires 2.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 65, + "line": 435 + }, + "start": { + "column": 39, + "line": 435 + } + } + }, + { + "id": "137", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(439,22): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 465 + }, + "start": { + "column": 34, + "line": 439 + } + } + }, + { + "id": "138", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(440,13): error TS2739: Type '{}' is missing the following properties from type 'EARL': \"earl:result\", \"@type\", \"earl:mode\", \"earl:test\"\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 458 + }, + "start": { + "column": 36, + "line": 440 + } + } + }, + { + "id": "139", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(442,9): error TS2739: Type '{}' is missing the following properties from type '{ \"@type\": \"earl:TestResult\"; \"earl:outcome\": { \"@id\": \"earl:failed\"; }; \"earl:info\": string; \"earl:pointer\"?: EARL | undefined; }': \"@type\", \"earl:outcome\", \"earl:info\"\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 10, + "line": 457 + }, + "start": { + "column": 24, + "line": 442 + } + } + }, + { + "id": "140", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(443,11): error TS2322: Type '\"\"' is not assignable to type '\"earl:TestResult\"'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 37, + "line": 443 + }, + "start": { + "column": 20, + "line": 443 + } + } + }, + { + "id": "141", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(444,11): error TS2741: Property '\"@id\"' is missing in type '{}' but required in type '{ \"@id\": \"earl:failed\"; }'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 12, + "line": 446 + }, + "start": { + "column": 27, + "line": 444 + } + } + }, + { + "id": "142", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(445,13): error TS2322: Type '\"\"' is not assignable to type '\"earl:failed\"'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 33, + "line": 445 + }, + "start": { + "column": 20, + "line": 445 + } + } + }, + { + "id": "143", + "mutatorName": "MethodExpression", + "replacement": "this._expectations.toArray().reduce((message, [, expectation]) => {\n if (expectation.isErr()) {\n message += \"\\n\" + expectation.getErr().message;\n }\n return message;\n}, \"\")", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 20, + "line": 456 + }, + "start": { + "column": 24, + "line": 447 + } + } + }, + { + "id": "144", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(449,21): error TS2769: No overload matches this call.\n Overload 1 of 3, '(callbackfn: (previousValue: [string, Result], currentValue: [string, Result], currentIndex: number, array: [...][]) => [...], initialValue: [...]): [...]', gave the following error.\n Argument of type '(message: string, [, expectation]: [string, Result]) => void' is not assignable to parameter of type '(previousValue: [string, Result], currentValue: [string, Result], currentIndex: number, array: [...][]) => [...]'.\n Types of parameters 'message' and 'previousValue' are incompatible.\n Type '[string, Result]' is not assignable to type 'string'.\n Overload 2 of 3, '(callbackfn: (previousValue: string, currentValue: [string, Result], currentIndex: number, array: [string, Result][]) => string, initialValue: string): string', gave the following error.\n Argument of type '(message: string, [, expectation]: [string, Result]) => void' is not assignable to parameter of type '(previousValue: string, currentValue: [string, Result], currentIndex: number, array: [string, Result][]) => string'.\n Type 'void' is not assignable to type 'string'.\npackages/alfa-act/src/outcome.ts(450,14): error TS2339: Property 'trim' does not exist on type '[string, Result]'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 14, + "line": 455 + }, + "start": { + "column": 51, + "line": 449 + } + } + }, + { + "id": "145", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "packages/alfa-act/src/outcome.ts(451,47): error TS2551: Property 'getErr' does not exist on type 'Result'. Did you mean 'getErrOr'?\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 38, + "line": 450 + }, + "start": { + "column": 19, + "line": 450 + } + } + }, + { + "id": "146", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "packages/alfa-act/src/outcome.ts(451,47): error TS2551: Property 'getErr' does not exist on type 'Result'. Did you mean 'getErrOr'?\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 38, + "line": 450 + }, + "start": { + "column": 19, + "line": 450 + } + } + }, + { + "id": "147", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 16, + "line": 452 + }, + "start": { + "column": 40, + "line": 450 + } + } + }, + { + "id": "148", + "mutatorName": "AssignmentOperator", + "replacement": "message -= \"\\n\" + expectation.getErr().message", + "statusReason": "packages/alfa-act/src/outcome.ts(451,17): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\npackages/alfa-act/src/outcome.ts(451,28): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 63, + "line": 451 + }, + "start": { + "column": 17, + "line": 451 + } + } + }, + { + "id": "149", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 32, + "line": 451 + }, + "start": { + "column": 28, + "line": 451 + } + } + }, + { + "id": "150", + "mutatorName": "StringLiteral", + "replacement": "\"Stryker was here!\"", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 18, + "line": 455 + }, + "start": { + "column": 16, + "line": 455 + } + } + }, + { + "id": "151", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 462 + }, + "start": { + "column": 69, + "line": 460 + } + } + }, + { + "id": "152", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(461,9): error TS2533: Object is possibly 'null' or 'undefined'.\npackages/alfa-act/src/outcome.ts(461,9): error TS7053: Element implicitly has an 'any' type because expression of type '\"earl:pointer\"' can't be used to index type 'string | number | boolean | Array | Object'.\n Property 'earl:pointer' does not exist on type 'string | number | boolean | Array | Object'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 30, + "line": 461 + }, + "start": { + "column": 17, + "line": 461 + } + } + }, + { + "id": "153", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(461,9): error TS7053: Element implicitly has an 'any' type because expression of type '\"\"' can't be used to index type '{ \"@type\": \"earl:TestResult\"; \"earl:outcome\": { \"@id\": \"earl:failed\"; }; \"earl:info\": string; \"earl:pointer\"?: EARL | undefined; }'.\n Property '' does not exist on type '{ \"@type\": \"earl:TestResult\"; \"earl:outcome\": { \"@id\": \"earl:failed\"; }; \"earl:info\": string; \"earl:pointer\"?: EARL | undefined; }'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 46, + "line": 461 + }, + "start": { + "column": 32, + "line": 461 + } + } + }, + { + "id": "154", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(467,23): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 500 + }, + "start": { + "column": 36, + "line": 467 + } + } + }, + { + "id": "155", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 64, + "line": 469 + }, + "start": { + "column": 9, + "line": 469 + } + } + }, + { + "id": "156", + "mutatorName": "MethodExpression", + "replacement": "Iterable", + "statusReason": "packages/alfa-act/src/outcome.ts(472,13): error TS2345: Argument of type 'typeof Iterable' is not assignable to parameter of type 'Iterable'.\n Property '[Symbol.iterator]' is missing in type 'typeof Iterable' but required in type 'Iterable'.\npackages/alfa-act/src/outcome.ts(473,35): error TS18046: 'expectation' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 14, + "line": 478 + }, + "start": { + "column": 13, + "line": 472 + } + } + }, + { + "id": "157", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 49, + "line": 475 + }, + "start": { + "column": 17, + "line": 475 + } + } + }, + { + "id": "158", + "mutatorName": "ArrowFunction", + "replacement": "() => undefined", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 65, + "line": 479 + }, + "start": { + "column": 13, + "line": 479 + } + } + }, + { + "id": "159", + "mutatorName": "StringLiteral", + "replacement": "``", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 65, + "line": 479 + }, + "start": { + "column": 30, + "line": 479 + } + } + }, + { + "id": "160", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 15, + "line": 481 + }, + "start": { + "column": 11, + "line": 481 + } + } + }, + { + "id": "161", + "mutatorName": "ArrayDeclaration", + "replacement": "[\"Stryker was here\"]", + "statusReason": "packages/alfa-act/src/outcome.ts(484,49): error TS2559: Type 'string' has no properties in common with type 'Location'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 50, + "line": 484 + }, + "start": { + "column": 48, + "line": 484 + } + } + }, + { + "id": "162", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 488 + }, + "start": { + "column": 72, + "line": 486 + } + } + }, + { + "id": "163", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(490,7): error TS2741: Property 'message' is missing in type '{}' but required in type 'Result'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 499 + }, + "start": { + "column": 14, + "line": 490 + } + } + }, + { + "id": "164", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(492,9): error TS2322: Type '\"\"' is not assignable to type 'kind | undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 21, + "line": 492 + }, + "start": { + "column": 15, + "line": 492 + } + } + }, + { + "id": "165", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(493,9): error TS2322: Type '\"\"' is not assignable to type 'level | undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 23, + "line": 493 + }, + "start": { + "column": 16, + "line": 493 + } + } + }, + { + "id": "166", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 10, + "line": 497 + }, + "start": { + "column": 18, + "line": 494 + } + } + }, + { + "id": "167", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(540,24): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 542 + }, + "start": { + "column": 52, + "line": 540 + } + } + }, + { + "id": "168", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(558,8): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 560 + }, + "start": { + "column": 29, + "line": 558 + } + } + }, + { + "id": "169", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(562,22): error TS2564: Property '_target' has no initializer and is not definitely assigned in the constructor.\npackages/alfa-act/src/outcome.ts(563,22): error TS2564: Property '_diagnostic' has no initializer and is not definitely assigned in the constructor.\npackages/alfa-act/src/outcome.ts(565,5): error TS2377: Constructors for derived classes must contain a 'super' call.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 575 + }, + "start": { + "column": 7, + "line": 570 + } + } + }, + { + "id": "170", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(577,16): error TS2378: A 'get' accessor must return a value.\npackages/alfa-act/src/outcome.ts(577,26): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 579 + }, + "start": { + "column": 28, + "line": 577 + } + } + }, + { + "id": "171", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(581,16): error TS2378: A 'get' accessor must return a value.\npackages/alfa-act/src/outcome.ts(581,30): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 583 + }, + "start": { + "column": 41, + "line": 581 + } + } + }, + { + "id": "172", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(591,36): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 598 + }, + "start": { + "column": 44, + "line": 591 + } + } + }, + { + "id": "173", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 51, + "line": 596 + }, + "start": { + "column": 9, + "line": 593 + } + } + }, + { + "id": "174", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 51, + "line": 596 + }, + "start": { + "column": 9, + "line": 593 + } + } + }, + { + "id": "175", + "mutatorName": "LogicalOperator", + "replacement": "super.equals(value) && value instanceof CantTell && Equatable.equals(value._target, this._target) || value._diagnostic.equals(this._diagnostic)", + "statusReason": "packages/alfa-act/src/outcome.ts(593,110): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 51, + "line": 596 + }, + "start": { + "column": 9, + "line": 593 + } + } + }, + { + "id": "176", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "packages/alfa-act/src/outcome.ts(594,9): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 54, + "line": 595 + }, + "start": { + "column": 9, + "line": 593 + } + } + }, + { + "id": "177", + "mutatorName": "LogicalOperator", + "replacement": "super.equals(value) && value instanceof CantTell || Equatable.equals(value._target, this._target)", + "statusReason": "packages/alfa-act/src/outcome.ts(593,78): error TS18046: 'value' is of type 'unknown'.\npackages/alfa-act/src/outcome.ts(594,9): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 54, + "line": 595 + }, + "start": { + "column": 9, + "line": 593 + } + } + }, + { + "id": "178", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "packages/alfa-act/src/outcome.ts(594,26): error TS18046: 'value' is of type 'unknown'.\npackages/alfa-act/src/outcome.ts(595,9): error TS18046: 'value' is of type 'unknown'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 34, + "line": 594 + }, + "start": { + "column": 9, + "line": 593 + } + } + }, + { + "id": "179", + "mutatorName": "LogicalOperator", + "replacement": "super.equals(value) || value instanceof CantTell", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 34, + "line": 594 + }, + "start": { + "column": 9, + "line": 593 + } + } + }, + { + "id": "180", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 604 + }, + "start": { + "column": 29, + "line": 600 + } + } + }, + { + "id": "181", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(606,22): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 612 + }, + "start": { + "column": 39, + "line": 606 + } + } + }, + { + "id": "182", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(607,7): error TS2739: Type '{}' is missing the following properties from type 'JSON': target, diagnostic, outcome, rule, mode\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 611 + }, + "start": { + "column": 14, + "line": 607 + } + } + }, + { + "id": "183", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(614,22): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 630 + }, + "start": { + "column": 36, + "line": 614 + } + } + }, + { + "id": "184", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(615,13): error TS2739: Type '{}' is missing the following properties from type 'EARL': \"earl:result\", \"@type\", \"earl:mode\", \"earl:test\"\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 623 + }, + "start": { + "column": 38, + "line": 615 + } + } + }, + { + "id": "185", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(617,9): error TS2739: Type '{}' is missing the following properties from type '{ \"@type\": \"earl:TestResult\"; \"earl:outcome\": { \"@id\": \"earl:cantTell\"; }; \"earl:pointer\"?: EARL | undefined; }': \"@type\", \"earl:outcome\"\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 10, + "line": 622 + }, + "start": { + "column": 24, + "line": 617 + } + } + }, + { + "id": "186", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(618,11): error TS2322: Type '\"\"' is not assignable to type '\"earl:TestResult\"'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 37, + "line": 618 + }, + "start": { + "column": 20, + "line": 618 + } + } + }, + { + "id": "187", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(619,11): error TS2741: Property '\"@id\"' is missing in type '{}' but required in type '{ \"@id\": \"earl:cantTell\"; }'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 12, + "line": 621 + }, + "start": { + "column": 27, + "line": 619 + } + } + }, + { + "id": "188", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(620,13): error TS2322: Type '\"\"' is not assignable to type '\"earl:cantTell\"'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 35, + "line": 620 + }, + "start": { + "column": 20, + "line": 620 + } + } + }, + { + "id": "189", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 627 + }, + "start": { + "column": 69, + "line": 625 + } + } + }, + { + "id": "190", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(626,9): error TS2533: Object is possibly 'null' or 'undefined'.\npackages/alfa-act/src/outcome.ts(626,9): error TS7053: Element implicitly has an 'any' type because expression of type '\"earl:pointer\"' can't be used to index type 'string | number | boolean | Array | Object'.\n Property 'earl:pointer' does not exist on type 'string | number | boolean | Array | Object'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 30, + "line": 626 + }, + "start": { + "column": 17, + "line": 626 + } + } + }, + { + "id": "191", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(626,9): error TS7053: Element implicitly has an 'any' type because expression of type '\"\"' can't be used to index type '{ \"@type\": \"earl:TestResult\"; \"earl:outcome\": { \"@id\": \"earl:cantTell\"; }; \"earl:pointer\"?: EARL | undefined; }'.\n Property '' does not exist on type '{ \"@type\": \"earl:TestResult\"; \"earl:outcome\": { \"@id\": \"earl:cantTell\"; }; \"earl:pointer\"?: EARL | undefined; }'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 46, + "line": 626 + }, + "start": { + "column": 32, + "line": 626 + } + } + }, + { + "id": "192", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(632,23): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 652 + }, + "start": { + "column": 36, + "line": 632 + } + } + }, + { + "id": "193", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 87, + "line": 634 + }, + "start": { + "column": 9, + "line": 634 + } + } + }, + { + "id": "194", + "mutatorName": "ArrayDeclaration", + "replacement": "[\"Stryker was here\"]", + "statusReason": "packages/alfa-act/src/outcome.ts(636,49): error TS2559: Type 'string' has no properties in common with type 'Location'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 50, + "line": 636 + }, + "start": { + "column": 48, + "line": 636 + } + } + }, + { + "id": "195", + "mutatorName": "BlockStatement", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 640 + }, + "start": { + "column": 72, + "line": 638 + } + } + }, + { + "id": "196", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(642,7): error TS2741: Property 'message' is missing in type '{}' but required in type 'Result'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 8, + "line": 651 + }, + "start": { + "column": 14, + "line": 642 + } + } + }, + { + "id": "197", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(644,9): error TS2322: Type '\"\"' is not assignable to type 'kind | undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 23, + "line": 644 + }, + "start": { + "column": 15, + "line": 644 + } + } + }, + { + "id": "198", + "mutatorName": "StringLiteral", + "replacement": "\"\"", + "statusReason": "packages/alfa-act/src/outcome.ts(645,9): error TS2322: Type '\"\"' is not assignable to type 'level | undefined'.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 25, + "line": 645 + }, + "start": { + "column": 16, + "line": 645 + } + } + }, + { + "id": "199", + "mutatorName": "ObjectLiteral", + "replacement": "{}", + "status": "Survived", + "testsCompleted": 1, + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 10, + "line": 649 + }, + "start": { + "column": 18, + "line": 646 + } + } + }, + { + "id": "200", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(691,24): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 693 + }, + "start": { + "column": 54, + "line": 691 + } + } + }, + { + "id": "201", + "mutatorName": "BlockStatement", + "replacement": "{}", + "statusReason": "packages/alfa-act/src/outcome.ts(725,24): error TS2355: A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\n", + "status": "CompileError", + "static": false, + "killedBy": [], + "coveredBy": [], + "location": { + "end": { + "column": 6, + "line": 727 + }, + "start": { + "column": 56, + "line": 725 + } + } + }, + { + "id": "202", + "mutatorName": "ConditionalExpression", + "replacement": "true", + "statusReason": "packages/alfa-rules/test/sia-r27/rule.spec.js(74,7): evaluate() is inapplicable when Applicability questions are unanswered\n\nExpected values to be strictly deep-equal:\n+ actual - expected ... Lines skipped\n\n [\n {\n+ diagnostic: {\n+ message: 'No extra information'\n+ },\n+ mode: 'automatic',\n+ outcome: 'cantTell',\n+ rule: {\n+ composes: [\n+ {\n+ requirements: [\n+ {\n+ name: 'G87',\n+ title: 'Providing closed captions',\n+ uri: 'https://www.w3.org/WAI/WCAG21/Techniques/general/G87'\n+ },\n+ {\n+ name: 'G93',\n+ title: 'Providing open (always visible) captions',\n+ uri: 'https://www.w3.org/WAI/WCAG21/Techniques/general/G93'\n+ },\n+ {\n+ name: 'H95',\n+ title: 'Using the track element to provide captions',\n+ uri: 'https://www.w3.org/WAI/WCAG21/Techniques/html/H95'\n+ }\n+ ],\n...\n- mode: 'automatic',\n- outcome: 'inapplicable',\n- rule: {\n- composes: [\n- {\n- requirements: [\n- {\n- name: 'G87',\n- title: 'Providing closed captions',\n- uri: 'https://www.w3.org/WAI/WCAG21/Techniques/general/G87'\n- },\n- {\n- name: 'G93',\n- title: 'Providing open (always visible) captions',\n- uri: 'https://www.w3.org/WAI/WCAG21/Techniques/general/G93'\n- },\n- {\n- name: 'H95',\n- title: 'Using the track element to provide captions',\n- uri: 'https://www.w3.org/WAI/WCAG21/Techniques/html/H95'\n- }\n- ],\n- tags: [\n- {\n- scope: 'component',\n...\n\n\n\nfile:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60\n\t\terror = new Error(message);\n\t\t ^\n\nError: Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r27/rule.spec.js\n at makeError (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/lib/error.js:60:11)\n at handlePromise (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/node_modules/execa/index.js:124:26)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async test (file:///home/rcj/repos/alfa/.stryker-tmp/sandbox6670957/scripts/stryker-test.mjs:13:30) {\n shortMessage: 'Command failed with exit code 1: /home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r27/rule.spec.js',\n command: '/home/rcj/.nvm/versions/node/v18.16.0/bin/node packages/alfa-rules/test/sia-r27/rule.spec.js',\n escapedCommand: '\"/home/rcj/.nvm/versions/node/v18.16.0/bin/node\" \"packages/alfa-rules/test/sia-r27/rule.spec.js\"',\n exitCode: 1,\n signal: undefined,\n signalDescription: undefined,\n stdout: undefined,\n stderr: undefined,\n cwd: '/home/rcj/repos/alfa/.stryker-tmp/sandbox6670957',\n failed: true,\n timedOut: false,\n isCanceled: false,\n killed: false\n}\n\n\nNode.js v18.16.0\n", + "status": "Killed", + "testsCompleted": 1, + "static": false, + "killedBy": [ + "0" + ], + "coveredBy": [], + "location": { + "end": { + "column": 69, + "line": 726 + }, + "start": { + "column": 14, + "line": 726 + } + } + }, + { + "id": "203", + "mutatorName": "ConditionalExpression", + "replacement": "false", + "statusReason": "packages/alfa-rules/test/sia-r27/rule.spec.js(16,7): evaluate() passes when R22 passes\n\nExpected values to be strictly deep-equal:\n+ actual - expected ... Lines skipped\n\n [\n {\n+ mode: 'semiAuto',\n+ outcome: 'inapplicable',\n+ rule: {\n+ composes: [\n+ {\n+ requirements: [\n+ {\n+ name: 'G87',\n+ title: 'Providing closed captions',\n+ uri: 'https://www.w3.org/WAI/WCAG21/Techniques/general/G87'\n+ },\n+ {\n+ name: 'G93',\n+ title: 'Providing open (always visible) captions',\n+ uri: 'https://www.w3.org/WAI/WCAG21/Techniques/general/G93'\n+ },\n+ {\n+ name: 'H95',\n+ title: 'Using the track element to provide captions',\n+ uri: 'https://www.w3.org/WAI/WCAG21/Techniques/html/H95'\n+ }\n+ ],\n+ tags: [\n+ {\n+ scope: 'component',\n...\n- expectations: [\n- [\n- '1',\n- {\n- type: 'ok',\n- value: {\n- message: 'The `