Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make objectives types configurable #204

Merged
merged 36 commits into from
Dec 11, 2023

fix: make configurable

e075aea
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

Make objectives types configurable #204

fix: make configurable
e075aea
Select commit
Loading
Failed to load commit list.
GitHub Actions / Mocha Tests succeeded Dec 11, 2023 in 0s

Mocha Tests ✅

Tests passed successfully

Report Passed Failed Skipped Time
/home/runner/work/syntest-javascript/syntest-javascript/libraries/analysis-javascript/test-results.json 147✅ 317ms
/home/runner/work/syntest-javascript/syntest-javascript/libraries/ast-visitor-javascript/test-results.json 1✅ 8ms
/home/runner/work/syntest-javascript/syntest-javascript/libraries/instrumentation-javascript/test-results.json 1✅ 2ms
/home/runner/work/syntest-javascript/syntest-javascript/libraries/search-javascript/test-results.json 147✅ 300ms
/home/runner/work/syntest-javascript/syntest-javascript/node_modules/@syntest/analysis-javascript/test-results.json 147✅ 317ms
/home/runner/work/syntest-javascript/syntest-javascript/node_modules/@syntest/ast-visitor-javascript/test-results.json 1✅ 8ms
/home/runner/work/syntest-javascript/syntest-javascript/node_modules/@syntest/instrumentation-javascript/test-results.json 1✅ 2ms
/home/runner/work/syntest-javascript/syntest-javascript/node_modules/@syntest/javascript/test-results.json 1✅ 1ms
/home/runner/work/syntest-javascript/syntest-javascript/node_modules/@syntest/plugin-javascript-event-listener-state-storage/test-results.json 1✅ 101ms
/home/runner/work/syntest-javascript/syntest-javascript/node_modules/@syntest/search-javascript/test-results.json 147✅ 300ms
/home/runner/work/syntest-javascript/syntest-javascript/plugins/plugin-javascript-event-listener-state-storage/test-results.json 1✅ 101ms
/home/runner/work/syntest-javascript/syntest-javascript/tools/javascript/test-results.json 1✅ 1ms

✅ /home/runner/work/syntest-javascript/syntest-javascript/libraries/analysis-javascript/test-results.json

147 tests were completed in 317ms with 147 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
libraries/analysis-javascript/test/AbstractSyntaxTreeGenerator.test.ts 1✅ 4ms
libraries/analysis-javascript/test/AbstractSyntaxTreeVisitor.test.ts 1✅ 8ms
libraries/analysis-javascript/test/cfg/ControlFlowGraphVisitor.test.ts 20✅ 121ms
libraries/analysis-javascript/test/cfg/ForControlFlowGraphVisitor.test.ts 2✅ 8ms
libraries/analysis-javascript/test/cfg/TernaryControlFlowGraphVisitor.test.ts 1✅ 3ms
libraries/analysis-javascript/test/dependency/DependencyVisitor.test.ts 8✅ 8ms
libraries/analysis-javascript/test/target/export/ExportVisitor.test.ts 67✅ 69ms
libraries/analysis-javascript/test/target/TargetFactory.test.ts 1✅ 3ms
libraries/analysis-javascript/test/target/TargetVisitor.test.ts 19✅ 26ms
libraries/analysis-javascript/test/type/ElementVisitor.test.ts 18✅ 13ms
libraries/analysis-javascript/test/type/InferenceTypeModelFactory.test.ts 1✅ 4ms
libraries/analysis-javascript/test/type/RelationVisitor.test.ts 8✅ 4ms

✅ libraries/analysis-javascript/test/AbstractSyntaxTreeGenerator.test.ts

example test
  ✅ test

✅ libraries/analysis-javascript/test/AbstractSyntaxTreeVisitor.test.ts

visitor test
  ✅ test

✅ libraries/analysis-javascript/test/cfg/ControlFlowGraphVisitor.test.ts

ControlFlowGraphVisitor test
  ✅ do while statements
  ✅ do while statements break
  ✅ do while statements continue
  ✅ do while statements if break
  ✅ do while statements without after
  ✅ do while statements without block
  ✅ for in loop
  ✅ for in loop no block
  ✅ for of loop
  ✅ for of loop no block
  ✅ function short arrow
  ✅ function simple block
  ✅ function simple block
  ✅ if block statements
  ✅ if else statements
  ✅ if statements
  ✅ simple statements
  ✅ switch
  ✅ while statements
  ✅ while statements no block

✅ libraries/analysis-javascript/test/cfg/ForControlFlowGraphVisitor.test.ts

ControlFlowGraphVisitor test for for i statements
  ✅ for i loop
  ✅ for i loop no block

✅ libraries/analysis-javascript/test/cfg/TernaryControlFlowGraphVisitor.test.ts

ControlFlowGraphVisitor test for ternary statements
  ✅ ternary statements

✅ libraries/analysis-javascript/test/dependency/DependencyVisitor.test.ts

TargetVisitor test
  ✅ basic dynamic import default computed
  ✅ basic dynamic import default computed
  ✅ basic import
  ✅ basic import default
  ✅ require import default
  ✅ require import default computed
  ✅ require import default duplicate
  ✅ require import default scoped

✅ libraries/analysis-javascript/test/target/export/ExportVisitor.test.ts

ExportVisitor test
  ✅ export all from module
  ✅ export all from module and rename
  ✅ export ArrayPattern declaration
  ✅ export ArrayPattern declaration rename
  ✅ export ArrayPattern declaration to array
  ✅ export basic declaration
  ✅ export basic specifier
  ✅ export class declaration
  ✅ export default class named
  ✅ export default class unnamed
  ✅ export default const value
  ✅ export default expression
  ✅ export default from module
  ✅ export default from module and rename
  ✅ export default function named
  ✅ export default function unnamed
  ✅ export default new expression
  ✅ export default new expression non identifier
  ✅ export default starred function named
  ✅ export default starred function unnamed
  ✅ export exports equals const
  ✅ export exports equals object expression with object method
  ✅ export exports equals object expression with object property boolean literal
  ✅ export exports equals object expression with object property number literal
  ✅ export exports equals object expression with object property rename var
  ✅ export exports equals object expression with object property string literal
  ✅ export exports equals object expression with spread element
  ✅ export exports.x equals a
  ✅ export exports.x equals const
  ✅ export exports['x'] equals a
  ✅ export exports[x] equals a
  ✅ export expression but not assignment
  ✅ export func().x equals a
  ✅ export function declaration
  ✅ export initialized declaration
  ✅ export initialized declaration renamed
  ✅ export module default
  ✅ export module default array
  ✅ export module default arrow function
  ✅ export module default identifier
  ✅ export module default named function
  ✅ export module default object
  ✅ export module default object no init
  ✅ export module default unnamed function
  ✅ export module.exports.x equals a
  ✅ export module.exports['x'] equals a
  ✅ export module.exports[x] equals a
  ✅ export module.x equals a
  ✅ export module.x.x equals a
  ✅ export module['exports'] equals a
  ✅ export module[exports] equals c
  ✅ export named default specifier
  ✅ export named specifier
  ✅ export named string specifier
  ✅ export ObjectPattern declaration
  ✅ export ObjectPattern declaration non matching props
  ✅ export ObjectPattern declaration not equal amount of properties
  ✅ export ObjectPattern declaration not equal amount of properties
  ✅ export ObjectPattern declaration rename
  ✅ export ObjectPattern declaration rest element
  ✅ export ObjectPattern declaration rest element
  ✅ export ObjectPattern declaration spread element
  ✅ export ObjectPattern declaration to object
  ✅ export short arrow
  ✅ export specific from module
  ✅ export specific from module and rename
  ✅ export starred function declaration

✅ libraries/analysis-javascript/test/target/TargetFactory.test.ts

TargetFactory
  ✅ class with getter and setters

✅ libraries/analysis-javascript/test/target/TargetVisitor.test.ts

TargetVisitor test
  ✅ ArrowFunctionExpression: as class expression property
  ✅ ArrowFunctionExpression: as class expression property where class expression is in object
  ✅ ArrowFunctionExpression: as class expression property where class expression is in object using literal
  ✅ ArrowFunctionExpression: as class expression property where class expression is in object using literal
  ✅ ArrowFunctionExpression: as class property
  ✅ ArrowFunctionExpression: as default class property
  ✅ ArrowFunctionExpression: const
  ✅ ClassDeclaration: one exported
  ✅ ClassExpression: one exported
  ✅ ClassMethod:
  ✅ FunctionDeclaration: two functions one exported
  ✅ FunctionExpression: assignment computed
  ✅ FunctionExpression: assignment memberexpression
  ✅ FunctionExpression: functions overwritten
  ✅ FunctionExpression: functions overwritten in subscope
  ✅ FunctionExpression: tree functions one exported
  ✅ ObjectFunction: assignment memberexpression using literal two
  ✅ ObjectFunction: assignment memberexpression using literal with export
  ✅ ObjectFunction: assignment memberexpression using literal with module export

✅ libraries/analysis-javascript/test/type/ElementVisitor.test.ts

ElementVisitor test
  ✅ Identifiers: Block
  ✅ Identifiers: Block reuse
  ✅ Identifiers: shadowing
  ✅ Identifiers: shadowing as function arg
  ✅ Literal: bigint
  ✅ Literal: binary number
  ✅ Literal: boolean
  ✅ Literal: decimal
  ✅ Literal: decimal number
  ✅ Literal: exponiated number
  ✅ Literal: hex number
  ✅ Literal: null
  ✅ Literal: number
  ✅ Literal: octal number
  ✅ Literal: regex
  ✅ Literal: string
  ✅ Literal: template
  ✅ Literal: undefined

✅ libraries/analysis-javascript/test/type/InferenceTypeModelFactory.test.ts

InferenceTypeModelFactory test
  ✅ Identifiers: Block

✅ libraries/analysis-javascript/test/type/RelationVisitor.test.ts

RelationVisitor test
  ✅ Assignment
  ✅ Call expression 2 args
  ✅ Call expression no args
  ✅ Function
  ✅ Function anonymous
  ✅ Function with args
  ✅ Function with return
  ✅ Object property

✅ /home/runner/work/syntest-javascript/syntest-javascript/libraries/ast-visitor-javascript/test-results.json

1 tests were completed in 8ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
libraries/ast-visitor-javascript/test/example.test.ts 1✅ 1ms

✅ libraries/ast-visitor-javascript/test/example.test.ts

example test
  ✅ test

✅ /home/runner/work/syntest-javascript/syntest-javascript/libraries/instrumentation-javascript/test-results.json

1 tests were completed in 2ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
libraries/instrumentation-javascript/test/example.test.ts 1✅ 0ms

✅ libraries/instrumentation-javascript/test/example.test.ts

example test
  ✅ test

✅ /home/runner/work/syntest-javascript/syntest-javascript/libraries/search-javascript/test-results.json

147 tests were completed in 300ms with 147 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
libraries/search-javascript/test/criterion/BranchDistanceBinaryDoubleEqual.test.ts 12✅ 36ms
libraries/search-javascript/test/criterion/BranchDistanceBinaryDoubleNotEqual.test.ts 12✅ 20ms
libraries/search-javascript/test/criterion/BranchDistanceBinaryGreater.test.ts 12✅ 25ms
libraries/search-javascript/test/criterion/BranchDistanceBinaryGreaterOrEqual.test.ts 12✅ 17ms
libraries/search-javascript/test/criterion/BranchDistanceBinaryIn.test.ts 2✅ 0ms
libraries/search-javascript/test/criterion/BranchDistanceBinarySmaller.test.ts 12✅ 17ms
libraries/search-javascript/test/criterion/BranchDistanceBinarySmallerOrEqual.test.ts 12✅ 15ms
libraries/search-javascript/test/criterion/BranchDistanceBinaryTrippleEqual.test.ts 14✅ 24ms
libraries/search-javascript/test/criterion/BranchDistanceBinaryTrippleNotEqual.test.ts 12✅ 16ms
libraries/search-javascript/test/criterion/BranchDistanceLogicalOr.test.ts 16✅ 27ms
libraries/search-javascript/test/criterion/BranchDistanceStringFunctions.test.ts 14✅ 33ms
libraries/search-javascript/test/criterion/BranchDistanceUnaryNot.test.ts 10✅ 13ms
libraries/search-javascript/test/criterion/BranchDistanceVisitor.test.ts 1✅ 0ms
libraries/search-javascript/test/criterion/RandomBranchDistanceTests.test.ts 6✅ 12ms

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryDoubleEqual.test.ts

BranchDistance a == b test
  ✅ 'a' == 'a' false
  ✅ 'a' == 'a' true
  ✅ 'a' == 'b' false
  ✅ 'a' == 'b' true
  ✅ 0 == -1 false
  ✅ 0 == -1 true
  ✅ 0 == '0' false
  ✅ 0 == '0' true
  ✅ 1 == 1 false
  ✅ 1 == 1 true
  ✅ 2 == 1 false
  ✅ 2 == 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryDoubleNotEqual.test.ts

BranchDistance a != b test
  ✅ 'a' != 'a' false
  ✅ 'a' != 'a' true
  ✅ 'a' != 'b' false
  ✅ 'a' != 'b' true
  ✅ 0 != -1 false
  ✅ 0 != -1 true
  ✅ 0 != '0' false
  ✅ 0 != '0' true
  ✅ 1 != 1 false
  ✅ 1 != 1 true
  ✅ 2 != 1 false
  ✅ 2 != 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryGreater.test.ts

BranchDistance a > b test
  ✅ 'a' > 'a' false
  ✅ 'a' > 'a' true
  ✅ 'a' > 'b' false
  ✅ 'a' > 'b' true
  ✅ 0 > -1 false
  ✅ 0 > -1 true
  ✅ 0 > '0' false
  ✅ 0 > '0' true
  ✅ 1 > 1 false
  ✅ 1 > 1 true
  ✅ 2 > 1 false
  ✅ 2 > 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryGreaterOrEqual.test.ts

BranchDistance a >= b test
  ✅ 'a' >= 'a' false
  ✅ 'a' >= 'a' true
  ✅ 'a' >= 'b' false
  ✅ 'a' >= 'b' true
  ✅ 0 >= -1 false
  ✅ 0 >= -1 true
  ✅ 0 >= '0' false
  ✅ 0 >= '0' true
  ✅ 1 >= 1 false
  ✅ 1 >= 1 true
  ✅ 2 >= 1 false
  ✅ 2 >= 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryIn.test.ts

BranchDistance a in b test
  ✅ 'a' in {'a': 0} false
  ✅ 'a' in {'a': 0} true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinarySmaller.test.ts

BranchDistance a < b test
  ✅ 'a' < 'a' false
  ✅ 'a' < 'a' true
  ✅ 'a' < 'b' false
  ✅ 'a' < 'b' true
  ✅ 0 < -1 false
  ✅ 0 < -1 true
  ✅ 0 < '0' false
  ✅ 0 < '0' true
  ✅ 1 < 1 false
  ✅ 1 < 1 true
  ✅ 2 < 1 false
  ✅ 2 < 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinarySmallerOrEqual.test.ts

BranchDistance a <= b test
  ✅ 'a' <= 'a' false
  ✅ 'a' <= 'a' true
  ✅ 'a' <= 'b' false
  ✅ 'a' <= 'b' true
  ✅ 0 <= -1 false
  ✅ 0 <= -1 true
  ✅ 0 <= '0' false
  ✅ 0 <= '0' true
  ✅ 1 <= 1 false
  ✅ 1 <= 1 true
  ✅ 2 <= 1 false
  ✅ 2 <= 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryTrippleEqual.test.ts

BranchDistance a === b test
  ✅ 'a' === 'a' false
  ✅ 'a' === 'a' true
  ✅ 'a' === 'b' false
  ✅ 'a' === 'b' true
  ✅ 0 === -1 false
  ✅ 0 === -1 true
  ✅ 0 === '0' false
  ✅ 0 === '0' true
  ✅ 1 === 1 false
  ✅ 1 === 1 true
  ✅ 2 === 1 false
  ✅ 2 === 1 true
  ✅ typeof 1 === 'string' true
  ✅ typeof a === 'string' true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryTrippleNotEqual.test.ts

BranchDistance a !== b test
  ✅ 'a' !== 'a' false
  ✅ 'a' !== 'a' true
  ✅ 'a' !== 'b' false
  ✅ 'a' !== 'b' true
  ✅ 0 !== -1 false
  ✅ 0 !== -1 true
  ✅ 0 !== '0' false
  ✅ 0 !== '0' true
  ✅ 1 !== 1 false
  ✅ 1 !== 1 true
  ✅ 2 !== 1 false
  ✅ 2 !== 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceLogicalOr.test.ts

BranchDistance a || b test
  ✅ 0 || 0 false
  ✅ 0 || 0 true
  ✅ 0 || 1 false
  ✅ 0 || 1 true
  ✅ 1 || 0 false
  ✅ 1 || 0 true
  ✅ 1 || 1 false
  ✅ 1 || 1 true
  ✅ false || false false
  ✅ false || false true
  ✅ false || true false
  ✅ false || true true
  ✅ true || false false
  ✅ true || false true
  ✅ true || true false
  ✅ true || true true

✅ libraries/search-javascript/test/criterion/BranchDistanceStringFunctions.test.ts

BranchDistance string functions
  ✅ 'abc'.endsWith('bc') false
  ✅ 'abc'.endsWith('bc') true
  ✅ 'abc'.endsWith('z') false
  ✅ 'abc'.endsWith('z') true
  ✅ 'abc'.includes('b') false
  ✅ 'abc'.includes('b') true
  ✅ 'abc'.includes('z') false
  ✅ 'abc'.includes('z') true
  ✅ 'abc'.startsWith('ab') false
  ✅ 'abc'.startsWith('ab') true
  ✅ 'abc'.startsWith('z') false
  ✅ 'abc'.startsWith('z') true
  ✅ 'bca'.includes('z') true
  ✅ 'cab'.includes('z') true

✅ libraries/search-javascript/test/criterion/BranchDistanceUnaryNot.test.ts

BranchDistance !a test
  ✅ !'a' false
  ✅ !'a' true
  ✅ !0 false
  ✅ !0 true
  ✅ !1 false
  ✅ !1 true
  ✅ !false false
  ✅ !false true
  ✅ !true false
  ✅ !true true

✅ libraries/search-javascript/test/criterion/BranchDistanceVisitor.test.ts

BranchDistance string functions
  ✅ 'abc'.endsWith('bc') true

✅ libraries/search-javascript/test/criterion/RandomBranchDistanceTests.test.ts

Random Tests
  ✅ a !== undefined && !b true
  ✅ args false
  ✅ args false
  ✅ cmd.options.length false
  ✅ cmd.options.length true
  ✅ option.defaultValue !== undefined && !option.negate true

✅ /home/runner/work/syntest-javascript/syntest-javascript/node_modules/@syntest/analysis-javascript/test-results.json

147 tests were completed in 317ms with 147 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
libraries/analysis-javascript/test/AbstractSyntaxTreeGenerator.test.ts 1✅ 4ms
libraries/analysis-javascript/test/AbstractSyntaxTreeVisitor.test.ts 1✅ 8ms
libraries/analysis-javascript/test/cfg/ControlFlowGraphVisitor.test.ts 20✅ 121ms
libraries/analysis-javascript/test/cfg/ForControlFlowGraphVisitor.test.ts 2✅ 8ms
libraries/analysis-javascript/test/cfg/TernaryControlFlowGraphVisitor.test.ts 1✅ 3ms
libraries/analysis-javascript/test/dependency/DependencyVisitor.test.ts 8✅ 8ms
libraries/analysis-javascript/test/target/export/ExportVisitor.test.ts 67✅ 69ms
libraries/analysis-javascript/test/target/TargetFactory.test.ts 1✅ 3ms
libraries/analysis-javascript/test/target/TargetVisitor.test.ts 19✅ 26ms
libraries/analysis-javascript/test/type/ElementVisitor.test.ts 18✅ 13ms
libraries/analysis-javascript/test/type/InferenceTypeModelFactory.test.ts 1✅ 4ms
libraries/analysis-javascript/test/type/RelationVisitor.test.ts 8✅ 4ms

✅ libraries/analysis-javascript/test/AbstractSyntaxTreeGenerator.test.ts

example test
  ✅ test

✅ libraries/analysis-javascript/test/AbstractSyntaxTreeVisitor.test.ts

visitor test
  ✅ test

✅ libraries/analysis-javascript/test/cfg/ControlFlowGraphVisitor.test.ts

ControlFlowGraphVisitor test
  ✅ do while statements
  ✅ do while statements break
  ✅ do while statements continue
  ✅ do while statements if break
  ✅ do while statements without after
  ✅ do while statements without block
  ✅ for in loop
  ✅ for in loop no block
  ✅ for of loop
  ✅ for of loop no block
  ✅ function short arrow
  ✅ function simple block
  ✅ function simple block
  ✅ if block statements
  ✅ if else statements
  ✅ if statements
  ✅ simple statements
  ✅ switch
  ✅ while statements
  ✅ while statements no block

✅ libraries/analysis-javascript/test/cfg/ForControlFlowGraphVisitor.test.ts

ControlFlowGraphVisitor test for for i statements
  ✅ for i loop
  ✅ for i loop no block

✅ libraries/analysis-javascript/test/cfg/TernaryControlFlowGraphVisitor.test.ts

ControlFlowGraphVisitor test for ternary statements
  ✅ ternary statements

✅ libraries/analysis-javascript/test/dependency/DependencyVisitor.test.ts

TargetVisitor test
  ✅ basic dynamic import default computed
  ✅ basic dynamic import default computed
  ✅ basic import
  ✅ basic import default
  ✅ require import default
  ✅ require import default computed
  ✅ require import default duplicate
  ✅ require import default scoped

✅ libraries/analysis-javascript/test/target/export/ExportVisitor.test.ts

ExportVisitor test
  ✅ export all from module
  ✅ export all from module and rename
  ✅ export ArrayPattern declaration
  ✅ export ArrayPattern declaration rename
  ✅ export ArrayPattern declaration to array
  ✅ export basic declaration
  ✅ export basic specifier
  ✅ export class declaration
  ✅ export default class named
  ✅ export default class unnamed
  ✅ export default const value
  ✅ export default expression
  ✅ export default from module
  ✅ export default from module and rename
  ✅ export default function named
  ✅ export default function unnamed
  ✅ export default new expression
  ✅ export default new expression non identifier
  ✅ export default starred function named
  ✅ export default starred function unnamed
  ✅ export exports equals const
  ✅ export exports equals object expression with object method
  ✅ export exports equals object expression with object property boolean literal
  ✅ export exports equals object expression with object property number literal
  ✅ export exports equals object expression with object property rename var
  ✅ export exports equals object expression with object property string literal
  ✅ export exports equals object expression with spread element
  ✅ export exports.x equals a
  ✅ export exports.x equals const
  ✅ export exports['x'] equals a
  ✅ export exports[x] equals a
  ✅ export expression but not assignment
  ✅ export func().x equals a
  ✅ export function declaration
  ✅ export initialized declaration
  ✅ export initialized declaration renamed
  ✅ export module default
  ✅ export module default array
  ✅ export module default arrow function
  ✅ export module default identifier
  ✅ export module default named function
  ✅ export module default object
  ✅ export module default object no init
  ✅ export module default unnamed function
  ✅ export module.exports.x equals a
  ✅ export module.exports['x'] equals a
  ✅ export module.exports[x] equals a
  ✅ export module.x equals a
  ✅ export module.x.x equals a
  ✅ export module['exports'] equals a
  ✅ export module[exports] equals c
  ✅ export named default specifier
  ✅ export named specifier
  ✅ export named string specifier
  ✅ export ObjectPattern declaration
  ✅ export ObjectPattern declaration non matching props
  ✅ export ObjectPattern declaration not equal amount of properties
  ✅ export ObjectPattern declaration not equal amount of properties
  ✅ export ObjectPattern declaration rename
  ✅ export ObjectPattern declaration rest element
  ✅ export ObjectPattern declaration rest element
  ✅ export ObjectPattern declaration spread element
  ✅ export ObjectPattern declaration to object
  ✅ export short arrow
  ✅ export specific from module
  ✅ export specific from module and rename
  ✅ export starred function declaration

✅ libraries/analysis-javascript/test/target/TargetFactory.test.ts

TargetFactory
  ✅ class with getter and setters

✅ libraries/analysis-javascript/test/target/TargetVisitor.test.ts

TargetVisitor test
  ✅ ArrowFunctionExpression: as class expression property
  ✅ ArrowFunctionExpression: as class expression property where class expression is in object
  ✅ ArrowFunctionExpression: as class expression property where class expression is in object using literal
  ✅ ArrowFunctionExpression: as class expression property where class expression is in object using literal
  ✅ ArrowFunctionExpression: as class property
  ✅ ArrowFunctionExpression: as default class property
  ✅ ArrowFunctionExpression: const
  ✅ ClassDeclaration: one exported
  ✅ ClassExpression: one exported
  ✅ ClassMethod:
  ✅ FunctionDeclaration: two functions one exported
  ✅ FunctionExpression: assignment computed
  ✅ FunctionExpression: assignment memberexpression
  ✅ FunctionExpression: functions overwritten
  ✅ FunctionExpression: functions overwritten in subscope
  ✅ FunctionExpression: tree functions one exported
  ✅ ObjectFunction: assignment memberexpression using literal two
  ✅ ObjectFunction: assignment memberexpression using literal with export
  ✅ ObjectFunction: assignment memberexpression using literal with module export

✅ libraries/analysis-javascript/test/type/ElementVisitor.test.ts

ElementVisitor test
  ✅ Identifiers: Block
  ✅ Identifiers: Block reuse
  ✅ Identifiers: shadowing
  ✅ Identifiers: shadowing as function arg
  ✅ Literal: bigint
  ✅ Literal: binary number
  ✅ Literal: boolean
  ✅ Literal: decimal
  ✅ Literal: decimal number
  ✅ Literal: exponiated number
  ✅ Literal: hex number
  ✅ Literal: null
  ✅ Literal: number
  ✅ Literal: octal number
  ✅ Literal: regex
  ✅ Literal: string
  ✅ Literal: template
  ✅ Literal: undefined

✅ libraries/analysis-javascript/test/type/InferenceTypeModelFactory.test.ts

InferenceTypeModelFactory test
  ✅ Identifiers: Block

✅ libraries/analysis-javascript/test/type/RelationVisitor.test.ts

RelationVisitor test
  ✅ Assignment
  ✅ Call expression 2 args
  ✅ Call expression no args
  ✅ Function
  ✅ Function anonymous
  ✅ Function with args
  ✅ Function with return
  ✅ Object property

✅ /home/runner/work/syntest-javascript/syntest-javascript/node_modules/@syntest/ast-visitor-javascript/test-results.json

1 tests were completed in 8ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
libraries/ast-visitor-javascript/test/example.test.ts 1✅ 1ms

✅ libraries/ast-visitor-javascript/test/example.test.ts

example test
  ✅ test

✅ /home/runner/work/syntest-javascript/syntest-javascript/node_modules/@syntest/instrumentation-javascript/test-results.json

1 tests were completed in 2ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
libraries/instrumentation-javascript/test/example.test.ts 1✅ 0ms

✅ libraries/instrumentation-javascript/test/example.test.ts

example test
  ✅ test

✅ /home/runner/work/syntest-javascript/syntest-javascript/node_modules/@syntest/javascript/test-results.json

1 tests were completed in 1ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
tools/javascript/test/example.test.ts 1✅ 0ms

✅ tools/javascript/test/example.test.ts

example test
  ✅ test

✅ /home/runner/work/syntest-javascript/syntest-javascript/node_modules/@syntest/plugin-javascript-event-listener-state-storage/test-results.json

1 tests were completed in 101ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
plugins/plugin-javascript-event-listener-state-storage/test/simulation.test.ts 1✅ 43ms

✅ plugins/plugin-javascript-event-listener-state-storage/test/simulation.test.ts

simulationTest
  ✅ SimpleTest

✅ /home/runner/work/syntest-javascript/syntest-javascript/node_modules/@syntest/search-javascript/test-results.json

147 tests were completed in 300ms with 147 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
libraries/search-javascript/test/criterion/BranchDistanceBinaryDoubleEqual.test.ts 12✅ 36ms
libraries/search-javascript/test/criterion/BranchDistanceBinaryDoubleNotEqual.test.ts 12✅ 20ms
libraries/search-javascript/test/criterion/BranchDistanceBinaryGreater.test.ts 12✅ 25ms
libraries/search-javascript/test/criterion/BranchDistanceBinaryGreaterOrEqual.test.ts 12✅ 17ms
libraries/search-javascript/test/criterion/BranchDistanceBinaryIn.test.ts 2✅ 0ms
libraries/search-javascript/test/criterion/BranchDistanceBinarySmaller.test.ts 12✅ 17ms
libraries/search-javascript/test/criterion/BranchDistanceBinarySmallerOrEqual.test.ts 12✅ 15ms
libraries/search-javascript/test/criterion/BranchDistanceBinaryTrippleEqual.test.ts 14✅ 24ms
libraries/search-javascript/test/criterion/BranchDistanceBinaryTrippleNotEqual.test.ts 12✅ 16ms
libraries/search-javascript/test/criterion/BranchDistanceLogicalOr.test.ts 16✅ 27ms
libraries/search-javascript/test/criterion/BranchDistanceStringFunctions.test.ts 14✅ 33ms
libraries/search-javascript/test/criterion/BranchDistanceUnaryNot.test.ts 10✅ 13ms
libraries/search-javascript/test/criterion/BranchDistanceVisitor.test.ts 1✅ 0ms
libraries/search-javascript/test/criterion/RandomBranchDistanceTests.test.ts 6✅ 12ms

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryDoubleEqual.test.ts

BranchDistance a == b test
  ✅ 'a' == 'a' false
  ✅ 'a' == 'a' true
  ✅ 'a' == 'b' false
  ✅ 'a' == 'b' true
  ✅ 0 == -1 false
  ✅ 0 == -1 true
  ✅ 0 == '0' false
  ✅ 0 == '0' true
  ✅ 1 == 1 false
  ✅ 1 == 1 true
  ✅ 2 == 1 false
  ✅ 2 == 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryDoubleNotEqual.test.ts

BranchDistance a != b test
  ✅ 'a' != 'a' false
  ✅ 'a' != 'a' true
  ✅ 'a' != 'b' false
  ✅ 'a' != 'b' true
  ✅ 0 != -1 false
  ✅ 0 != -1 true
  ✅ 0 != '0' false
  ✅ 0 != '0' true
  ✅ 1 != 1 false
  ✅ 1 != 1 true
  ✅ 2 != 1 false
  ✅ 2 != 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryGreater.test.ts

BranchDistance a > b test
  ✅ 'a' > 'a' false
  ✅ 'a' > 'a' true
  ✅ 'a' > 'b' false
  ✅ 'a' > 'b' true
  ✅ 0 > -1 false
  ✅ 0 > -1 true
  ✅ 0 > '0' false
  ✅ 0 > '0' true
  ✅ 1 > 1 false
  ✅ 1 > 1 true
  ✅ 2 > 1 false
  ✅ 2 > 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryGreaterOrEqual.test.ts

BranchDistance a >= b test
  ✅ 'a' >= 'a' false
  ✅ 'a' >= 'a' true
  ✅ 'a' >= 'b' false
  ✅ 'a' >= 'b' true
  ✅ 0 >= -1 false
  ✅ 0 >= -1 true
  ✅ 0 >= '0' false
  ✅ 0 >= '0' true
  ✅ 1 >= 1 false
  ✅ 1 >= 1 true
  ✅ 2 >= 1 false
  ✅ 2 >= 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryIn.test.ts

BranchDistance a in b test
  ✅ 'a' in {'a': 0} false
  ✅ 'a' in {'a': 0} true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinarySmaller.test.ts

BranchDistance a < b test
  ✅ 'a' < 'a' false
  ✅ 'a' < 'a' true
  ✅ 'a' < 'b' false
  ✅ 'a' < 'b' true
  ✅ 0 < -1 false
  ✅ 0 < -1 true
  ✅ 0 < '0' false
  ✅ 0 < '0' true
  ✅ 1 < 1 false
  ✅ 1 < 1 true
  ✅ 2 < 1 false
  ✅ 2 < 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinarySmallerOrEqual.test.ts

BranchDistance a <= b test
  ✅ 'a' <= 'a' false
  ✅ 'a' <= 'a' true
  ✅ 'a' <= 'b' false
  ✅ 'a' <= 'b' true
  ✅ 0 <= -1 false
  ✅ 0 <= -1 true
  ✅ 0 <= '0' false
  ✅ 0 <= '0' true
  ✅ 1 <= 1 false
  ✅ 1 <= 1 true
  ✅ 2 <= 1 false
  ✅ 2 <= 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryTrippleEqual.test.ts

BranchDistance a === b test
  ✅ 'a' === 'a' false
  ✅ 'a' === 'a' true
  ✅ 'a' === 'b' false
  ✅ 'a' === 'b' true
  ✅ 0 === -1 false
  ✅ 0 === -1 true
  ✅ 0 === '0' false
  ✅ 0 === '0' true
  ✅ 1 === 1 false
  ✅ 1 === 1 true
  ✅ 2 === 1 false
  ✅ 2 === 1 true
  ✅ typeof 1 === 'string' true
  ✅ typeof a === 'string' true

✅ libraries/search-javascript/test/criterion/BranchDistanceBinaryTrippleNotEqual.test.ts

BranchDistance a !== b test
  ✅ 'a' !== 'a' false
  ✅ 'a' !== 'a' true
  ✅ 'a' !== 'b' false
  ✅ 'a' !== 'b' true
  ✅ 0 !== -1 false
  ✅ 0 !== -1 true
  ✅ 0 !== '0' false
  ✅ 0 !== '0' true
  ✅ 1 !== 1 false
  ✅ 1 !== 1 true
  ✅ 2 !== 1 false
  ✅ 2 !== 1 true

✅ libraries/search-javascript/test/criterion/BranchDistanceLogicalOr.test.ts

BranchDistance a || b test
  ✅ 0 || 0 false
  ✅ 0 || 0 true
  ✅ 0 || 1 false
  ✅ 0 || 1 true
  ✅ 1 || 0 false
  ✅ 1 || 0 true
  ✅ 1 || 1 false
  ✅ 1 || 1 true
  ✅ false || false false
  ✅ false || false true
  ✅ false || true false
  ✅ false || true true
  ✅ true || false false
  ✅ true || false true
  ✅ true || true false
  ✅ true || true true

✅ libraries/search-javascript/test/criterion/BranchDistanceStringFunctions.test.ts

BranchDistance string functions
  ✅ 'abc'.endsWith('bc') false
  ✅ 'abc'.endsWith('bc') true
  ✅ 'abc'.endsWith('z') false
  ✅ 'abc'.endsWith('z') true
  ✅ 'abc'.includes('b') false
  ✅ 'abc'.includes('b') true
  ✅ 'abc'.includes('z') false
  ✅ 'abc'.includes('z') true
  ✅ 'abc'.startsWith('ab') false
  ✅ 'abc'.startsWith('ab') true
  ✅ 'abc'.startsWith('z') false
  ✅ 'abc'.startsWith('z') true
  ✅ 'bca'.includes('z') true
  ✅ 'cab'.includes('z') true

✅ libraries/search-javascript/test/criterion/BranchDistanceUnaryNot.test.ts

BranchDistance !a test
  ✅ !'a' false
  ✅ !'a' true
  ✅ !0 false
  ✅ !0 true
  ✅ !1 false
  ✅ !1 true
  ✅ !false false
  ✅ !false true
  ✅ !true false
  ✅ !true true

✅ libraries/search-javascript/test/criterion/BranchDistanceVisitor.test.ts

BranchDistance string functions
  ✅ 'abc'.endsWith('bc') true

✅ libraries/search-javascript/test/criterion/RandomBranchDistanceTests.test.ts

Random Tests
  ✅ a !== undefined && !b true
  ✅ args false
  ✅ args false
  ✅ cmd.options.length false
  ✅ cmd.options.length true
  ✅ option.defaultValue !== undefined && !option.negate true

✅ /home/runner/work/syntest-javascript/syntest-javascript/plugins/plugin-javascript-event-listener-state-storage/test-results.json

1 tests were completed in 101ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
plugins/plugin-javascript-event-listener-state-storage/test/simulation.test.ts 1✅ 43ms

✅ plugins/plugin-javascript-event-listener-state-storage/test/simulation.test.ts

simulationTest
  ✅ SimpleTest

✅ /home/runner/work/syntest-javascript/syntest-javascript/tools/javascript/test-results.json

1 tests were completed in 1ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
tools/javascript/test/example.test.ts 1✅ 0ms

✅ tools/javascript/test/example.test.ts

example test
  ✅ test