Test Automation Made Simple
This report summarizes scanner evidence for karatelabs/karate, a Java project with 9,003 GitHub stars. SynthScan examined 272,564 lines of code across 1118 source files, recording 248 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 2.7 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 175 finding(s).
Are imports declared and package/API names verified? 63 finding(s).
Are wrappers, guards, and repeated structures necessary? 12 finding(s).
Which changes need focused human review? 248 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 248 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …iling/src/main/java/io/karatelabs/profiling/Child.java | 435 | liveSetProbe.join(java.util.concurrent.TimeUnit.SECONDS.toMillis(30)); | CODE |
| CRITICAL | …/io/karatelabs/profiling/gatling/GatlingWorkloads.java | 50 | io.gatling.javaapi.core.Simulation.class.getName(); | CODE |
| CRITICAL | …s/src/test/java/io/karatelabs/common/ResourceTest.java | 1071 | com.sun.net.httpserver.HttpServer server = com.sun.net.httpserver.HttpServer.create( | CODE |
| CRITICAL | …s/src/test/java/io/karatelabs/common/ResourceTest.java | 1122 | com.sun.net.httpserver.HttpServer server = com.sun.net.httpserver.HttpServer.create( | CODE |
| CRITICAL | …s/src/test/java/io/karatelabs/common/ResourceTest.java | 1158 | com.sun.net.httpserver.HttpServer server = com.sun.net.httpserver.HttpServer.create( | CODE |
| CRITICAL | …s/src/test/java/io/karatelabs/common/ResourceTest.java | 1185 | com.sun.net.httpserver.HttpServer server = com.sun.net.httpserver.HttpServer.create( | CODE |
| CRITICAL | …main/java/io/karatelabs/ext/image/ImageComparison.java | 334 | io.github.t12y.pixelmatch.Options opts = io.github.t12y.pixelmatch.Options.defaults(); | CODE |
| CRITICAL⚡ | …main/java/io/karatelabs/ext/image/ImageComparison.java | 370 | opts = io.github.t12y.resemble.Options.ignoreNothing(); | CODE |
| CRITICAL⚡ | …main/java/io/karatelabs/ext/image/ImageComparison.java | 373 | opts = io.github.t12y.resemble.Options.ignoreLess(); | CODE |
| CRITICAL⚡ | …main/java/io/karatelabs/ext/image/ImageComparison.java | 376 | opts = io.github.t12y.resemble.Options.ignoreAntialiasing(); | CODE |
| CRITICAL⚡ | …main/java/io/karatelabs/ext/image/ImageComparison.java | 379 | opts = io.github.t12y.resemble.Options.ignoreColors(); | CODE |
| CRITICAL⚡ | …main/java/io/karatelabs/ext/image/ImageComparison.java | 382 | opts = io.github.t12y.resemble.Options.ignoreAlpha(); | CODE |
| CRITICAL⚡ | …main/java/io/karatelabs/ext/image/ImageComparison.java | 386 | opts = io.github.t12y.resemble.Options.ignoreNothing(); | CODE |
| CRITICAL | …main/java/io/karatelabs/ext/image/ImageComparison.java | 422 | io.github.t12y.ssim.models.Options opts = io.github.t12y.ssim.models.Options.Defaults(); | CODE |
| CRITICAL | docs/GATLING.md | 1426 | return new io.gatling.core.action.builder.SessionHookBuilder(scalaFunc, true); | CODE |
| CRITICAL | …/java/io/karatelabs/gatling/PooledConnectionsTest.java | 110 | org.junit.jupiter.api.Assertions.assertNotSame(first, second, | CODE |
| CRITICAL | …/main/java/io/karatelabs/gatling/KarateSetBuilder.java | 84 | return new io.gatling.core.action.builder.SessionHookBuilder(scalaFunc, true); | CODE |
| CRITICAL | …rc/test/java/io/karatelabs/core/BootClasspathTest.java | 109 | assertEquals(io.karatelabs.common.FileUtils.WORKING_DIR.toPath(), suite.getWorkingDir(), | CODE |
| CRITICAL | …re/src/test/java/io/karatelabs/core/SuiteRootTest.java | 113 | io.karatelabs.ext.rootcapture.RootcaptureExt.SEEN.remove(); | STRING |
| CRITICAL | …re/src/test/java/io/karatelabs/core/SuiteRootTest.java | 116 | assertEquals(project, io.karatelabs.ext.rootcapture.RootcaptureExt.SEEN.get(), | STRING |
| CRITICAL | …c/test/java/io/karatelabs/core/ScenarioConfigTest.java | 1011 | io.karatelabs.core.parallel.CallOnceCounter.reset(); | STRING |
| CRITICAL | …c/test/java/io/karatelabs/core/ScenarioConfigTest.java | 1053 | io.karatelabs.core.parallel.CallOnceCounter.reset(); | STRING |
| CRITICAL | …c/test/java/io/karatelabs/core/ScenarioConfigTest.java | 1079 | assertEquals(3, io.karatelabs.core.parallel.CallOnceCounter.get(), | STRING |
| CRITICAL | …c/test/java/io/karatelabs/core/ScenarioConfigTest.java | 1196 | io.karatelabs.core.parallel.CallOnceCounter.reset(); | STRING |
| CRITICAL | …c/test/java/io/karatelabs/core/ScenarioConfigTest.java | 1203 | assertEquals(scenarios, io.karatelabs.core.parallel.CallOnceCounter.get(), | STRING |
| CRITICAL | …java/io/karatelabs/core/callsingle/CallSingleTest.java | 470 | io.karatelabs.core.parallel.CallOnceCounter.reset(); | STRING |
| CRITICAL | …java/io/karatelabs/core/callsingle/CallSingleTest.java | 525 | int count = io.karatelabs.core.parallel.CallOnceCounter.get(); | STRING |
| CRITICAL | …java/io/karatelabs/core/callsingle/CallSingleTest.java | 1138 | io.karatelabs.core.parallel.CallOnceCounter.reset(); | STRING |
| CRITICAL | …java/io/karatelabs/core/callsingle/CallSingleTest.java | 1178 | assertEquals(1, io.karatelabs.core.parallel.CallOnceCounter.get(), | STRING |
| CRITICAL | …ava/io/karatelabs/driver/e2e/W3cDriverFeatureTest.java | 86 | io.karatelabs.driver.e2e.support.UploadFixtures.copyInto(chrome); | CODE |
| CRITICAL | …t/java/io/karatelabs/driver/e2e/DriverFeatureTest.java | 103 | io.karatelabs.driver.e2e.support.UploadFixtures.copyInto(chrome); | CODE |
| CRITICAL | …test/java/io/karatelabs/http/ApacheHttpClientTest.java | 193 | = new org.apache.hc.core5.http.message.BasicClassicHttpResponse(200); | STRING |
| CRITICAL | …test/java/io/karatelabs/http/ApacheHttpClientTest.java | 197 | wire.setEntity(new org.apache.hc.core5.http.io.entity.ByteArrayEntity( | STRING |
| CRITICAL | …test/java/io/karatelabs/http/ApacheHttpClientTest.java | 208 | = new org.apache.hc.core5.http.message.BasicClassicHttpResponse(200); | STRING |
| CRITICAL⚡ | …test/java/io/karatelabs/http/ApacheHttpClientTest.java | 226 | wire.setEntity(new org.apache.hc.core5.http.io.entity.InputStreamEntity(slowBody, -1, | STRING |
| CRITICAL⚡ | …test/java/io/karatelabs/http/ApacheHttpClientTest.java | 236 | = new org.apache.hc.core5.http.message.BasicClassicHttpResponse(200); | STRING |
| CRITICAL⚡ | …test/java/io/karatelabs/http/ApacheHttpClientTest.java | 239 | wire.setEntity(new org.apache.hc.core5.http.io.entity.ByteArrayEntity( | STRING |
| CRITICAL | …io/karatelabs/http/HttpServerReentrantHandlerTest.java | 56 | return CLIENT.send(req, java.net.http.HttpResponse.BodyHandlers.ofString()).body(); | CODE |
| CRITICAL | …io/karatelabs/http/HttpServerReentrantHandlerTest.java | 167 | CLIENT.sendAsync(req, java.net.http.HttpResponse.BodyHandlers.ofString()); | CODE |
| CRITICAL | …/karatelabs/http/AuthorizationCodeAuthHandlerTest.java | 639 | java.net.http.HttpResponse.BodyHandlers.discarding()).statusCode()); | STRING |
| CRITICAL | …/karatelabs/http/AuthorizationCodeAuthHandlerTest.java | 641 | java.net.http.HttpResponse.BodyHandlers.discarding()); | STRING |
| CRITICAL | …re/src/main/java/io/karatelabs/core/KarateJsUtils.java | 1084 | var response = httpClient.send(request, java.net.http.HttpResponse.BodyHandlers.discarding()); | CODE |
| CRITICAL | …/src/main/java/io/karatelabs/core/ScenarioRuntime.java | 2454 | boolean isW3c = io.karatelabs.driver.w3c.W3cBrowserType.isW3cType(driverType); | CODE |
| CRITICAL | …/src/main/java/io/karatelabs/core/ScenarioRuntime.java | 2463 | io.karatelabs.driver.w3c.W3cDriverOptions w3cOptions = io.karatelabs.driver.w3c.W3cDriverOptions.fromMap(con | CODE |
| CRITICAL | …/src/main/java/io/karatelabs/core/ScenarioRuntime.java | 2480 | driver = io.karatelabs.driver.w3c.W3cDriver.start(configMap); | CODE |
| CRITICAL | …/src/main/java/io/karatelabs/core/ScenarioRuntime.java | 2508 | for (io.karatelabs.driver.w3c.W3cBrowserType bt : io.karatelabs.driver.w3c.W3cBrowserType.values()) { | CODE |
| CRITICAL | …ore/src/main/java/io/karatelabs/http/HttpResponse.java | 345 | io.netty.handler.codec.http.cookie.ClientCookieDecoder.LAX.decode(header); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | karate-profiling/etc/js-arm.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | karate-profiling/etc/run.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | karate-profiling/etc/ec2/provision.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | karate-profiling/etc/ec2/selftest.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | karate-profiling/etc/ec2/calibrate.sh | 41 | mock_url="$($tls && printf 'https' || printf 'http')://${mock_private}:${mock_port}" | COMMENT |
| LOW | karate-profiling/etc/ec2/mock.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | karate-profiling/etc/ec2/js-matrix.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | karate-profiling/etc/ec2/js-matrix.sh | 21 | # loudly rather than measuring the wrong thing. | COMMENT |
| LOW | karate-profiling/etc/ec2/js-matrix.sh | 61 | # Comma-separated subset of the six rows, for a rehearsal or a targeted probe. | COMMENT |
| LOW | karate-profiling/etc/ec2/collect.sh | 41 | # The total printed above cannot catch it either — hundreds of older digests | COMMENT |
| LOW | karate-profiling/etc/ec2/collect.sh | 81 | die "refusing to report success - do NOT tear down until this is understood" | COMMENT |
| LOW | karate-profiling/etc/ec2/teardown.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | karate-profiling/etc/ec2/bootstrap.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | karate-profiling/etc/ec2/bootstrap.sh | 101 | cd ~/karate | COMMENT |
| LOW | karate-profiling/etc/ec2/bootstrap.sh | 141 | # times. Combined with excluding target/, that hands Maven a source file older than | COMMENT |
| LOW | karate-profiling/etc/ec2/matrix.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | karate-profiling/etc/ec2/matrix.sh | 41 | --port) mock_port="$2"; shift 2 ;; | COMMENT |
| LOW | karate-profiling/etc/ec2/matrix.sh | 61 | # same tier — which is the actual A/B, since `compare` pairs plain against | COMMENT |
| LOW | karate-profiling/etc/ec2/lib.sh | 61 | # Pure: reads the inventory on stdin and sets three variables, so it can be tested | COMMENT |
| LOW | …iling/src/main/java/io/karatelabs/profiling/Child.java | 101 | // live-set panel above", which was not in the file. Hours of soak, no instrument. | COMMENT |
| LOW | …iling/src/main/java/io/karatelabs/profiling/Child.java | 141 | // Truncation exits non-zero for the same reason the iteration-bounded path does: an | COMMENT |
| LOW | …/main/java/io/karatelabs/profiling/MockCalibrator.java | 201 | Thread.ofVirtual().start(() -> { | COMMENT |
| LOW | …g/src/main/java/io/karatelabs/profiling/MockStats.java | 321 | + ",\"serviceMicrosP99\":" + percentileMicros(histogram, 0.99) | COMMENT |
| LOW | …ng/src/main/java/io/karatelabs/profiling/Profiler.java | 421 | + shape.iterations() + " iterations might take longer than that, pass" | COMMENT |
| LOW | …ng/src/main/java/io/karatelabs/profiling/Profiler.java | 441 | // 2. The disable list has to be near-complete to matter. Disabling the two samplers | COMMENT |
| LOW | …ng/src/main/java/io/karatelabs/profiling/Profiler.java | 461 | for (String event : SOAK_DISABLED_EVENTS) { | COMMENT |
| LOW | …c/main/java/io/karatelabs/profiling/jfr/JfrDigest.java | 561 | static void appendPortPressure(StringBuilder md, String mockStats, | COMMENT |
| LOW | …c/main/java/io/karatelabs/profiling/jfr/JfrDigest.java | 1461 | // Whether anything collected the old generation decides whether the | COMMENT |
| LOW | …/io/karatelabs/profiling/gatling/GatlingWorkloads.java | 41 | COMMENT | |
| LOW | …-js/src/test/java/io/karatelabs/js/JsFunctionTest.java | 481 | assertEquals(jsonPayload, extractedPayload); | COMMENT |
| LOW | …ate-js/src/test/java/io/karatelabs/js/SpecPinTest.java | 661 | + " Object.defineProperty(Array.prototype, '0'," | COMMENT |
| LOW | …ate-js/src/test/java/io/karatelabs/js/SpecPinTest.java | 841 | COMMENT | |
| LOW | …ate-js/src/test/java/io/karatelabs/js/SpecPinTest.java | 1201 | // bypass; the JsArray branch did not). Test262 | COMMENT |
| LOW | …ate-js/src/test/java/io/karatelabs/js/SpecPinTest.java | 2021 | void push_degradesToSpecPathOnEveryDirtyCondition() { | COMMENT |
| LOW | …/src/main/java/io/karatelabs/js/JsStructuredClone.java | 121 | // `instanceof AppError`, but `instanceof Error` must hold | COMMENT |
| LOW | …-js/src/main/java/io/karatelabs/js/JsFunctionNode.java | 61 | // "use strict" prologue OR it was defined inside already-strict code | COMMENT |
| LOW | …-js/src/main/java/io/karatelabs/js/JsFunctionNode.java | 81 | // (Array/Map/Set/Date), when there is one — `new` then allocates the | COMMENT |
| LOW | …s/src/main/java/io/karatelabs/js/JsArrayPrototype.java | 141 | // Spec: Array.prototype.* are intentionally generic — they treat `this` as an | COMMENT |
| LOW | …s/src/main/java/io/karatelabs/js/JsArrayPrototype.java | 521 | } | COMMENT |
| LOW | …s/src/main/java/io/karatelabs/js/JsArrayPrototype.java | 641 | // set-length-array-length-is-non-writable.js push variant). On a | COMMENT |
| LOW | …s/src/main/java/io/karatelabs/js/JsArrayPrototype.java | 681 | // 1. O = ToObject(this). 2. len = ToLength(Get(O, "length")). | COMMENT |
| LOW | …s/src/main/java/io/karatelabs/js/JsArrayPrototype.java | 861 | private Object reduce(Context context, Object[] args) { | COMMENT |
| LOW | …s/src/main/java/io/karatelabs/js/JsArrayPrototype.java | 1041 | private Object splice(Context context, Object[] args) { | COMMENT |
| LOW | …s/src/main/java/io/karatelabs/js/JsArrayPrototype.java | 1241 | // if HasProperty(O, fromKey): Set(O, toKey, Get(O, fromKey), true) | COMMENT |
| LOW | …s/src/main/java/io/karatelabs/js/JsArrayPrototype.java | 1281 | // from = ToString(k-1); to = ToString(k+argCount-1) | COMMENT |
| LOW | …s/src/main/java/io/karatelabs/js/JsArrayPrototype.java | 1401 | return thisArray.get(index); | COMMENT |
| LOW | …ate-js/src/main/java/io/karatelabs/js/CoreContext.java | 61 | PrivateEnv privateEnv; | COMMENT |
| LOW | …ate-js/src/main/java/io/karatelabs/js/CoreContext.java | 81 | boolean arrowFrame; | COMMENT |
| LOW | karate-js/src/main/java/io/karatelabs/js/JsObject.java | 781 | if (!inMap && !intrinsic) { | COMMENT |
| LOW | …/src/main/java/io/karatelabs/js/JsObjectPrototype.java | 81 | // ObjectLike, so the spec's [[Call]] check applies. After R2 this also | COMMENT |
| LOW | …js/src/main/java/io/karatelabs/js/JsDatePrototype.java | 361 | private Object getUTCMilliseconds(Context context, Object[] args) { | COMMENT |
| LOW | …ate-js/src/main/java/io/karatelabs/js/Interpreter.java | 1061 | // ES6 class — desugared at eval time onto the existing constructor-function | COMMENT |
| LOW | …ate-js/src/main/java/io/karatelabs/js/Interpreter.java | 1761 | // Every loop var is a scope-confined frame slot: the | COMMENT |
| LOW | …ate-js/src/main/java/io/karatelabs/js/Interpreter.java | 1801 | int semi2 = forTest == null ? semi1 + 1 : semi1 + 2; | COMMENT |
| LOW | …ate-js/src/main/java/io/karatelabs/js/Interpreter.java | 2601 | // User-defined error classes (e.g. test262's Test262Error) often omit | COMMENT |
| LOW | karate-js/src/main/java/io/karatelabs/js/Engine.java | 81 | // Single global store. Holds user-visible bindings (Engine.put / top-level | COMMENT |
| LOW | …-js/src/main/java/io/karatelabs/js/PropertyAccess.java | 1041 | // getMember pair, which probed namedProps twice and ran | COMMENT |
| LOW | …-js/src/main/java/io/karatelabs/js/PropertyAccess.java | 1141 | int i = denseIndex(n); | COMMENT |
| LOW | …rc/main/java/io/karatelabs/js/JsObjectConstructor.java | 761 | // re-coercion that handleLengthAssign would run, since coercedLength | COMMENT |
| LOW | …rc/main/java/io/karatelabs/js/JsObjectConstructor.java | 881 | throw JsErrorException.typeError("Object.defineProperties called on non-object"); | COMMENT |
| 69 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | karate-profiling/etc/js-arm.sh | 72 | # -o (offline) deliberately, like the rest of the harness: a surprise dependency download is | COMMENT |
| MEDIUM | karate-profiling/etc/run.sh | 6 | # etc/run.sh harness-smoke # is the harness alive? | COMMENT |
| MEDIUM | karate-profiling/etc/ec2/js-matrix.sh | 6 | # identity is engine + Rhino version + resolved-jar sha256, recorded by the harness in each | COMMENT |
| MEDIUM | karate-profiling/etc/ec2/js-matrix.sh | 55 | # name the harness accepts, so nothing unvetted crosses the remote shell. | COMMENT |
| MEDIUM | karate-profiling/etc/ec2/js-matrix.sh | 70 | # the harness against THIS (or fully locally, see docs/PROFILING.md), never against | COMMENT |
| MEDIUM | karate-profiling/etc/ec2/js-matrix.sh | 75 | # without any feature-specific code in this harness. | COMMENT |
| MEDIUM | karate-profiling/etc/ec2/js-matrix.sh | 95 | # ships. The only engine name accepted is the one the harness knows — it travels into a | COMMENT |
| MEDIUM | karate-profiling/etc/ec2/bootstrap.sh | 35 | # Every one of these is a limit the harness would otherwise measure instead of | COMMENT |
| MEDIUM | karate-profiling/etc/ec2/matrix.sh | 120 | # The harness forks its own mock per run, exactly as a single-host run does. | COMMENT |
| MEDIUM | karate-js-test262/etc/expectations.yaml | 63 | # harness/doneprintHandle.js for them, captures the engine's console sink, | COMMENT |
| MEDIUM | karate-js-test262/etc/expectations.yaml | 118 | # carry `flags: [async]` still skip on the flag rule above (harness gap, not | COMMENT |
| MEDIUM⚡ | karate-js-test262/etc/expectations.yaml | 183 | # Tests whose YAML frontmatter `includes:` references any of these harness helpers | COMMENT |
| MEDIUM⚡ | karate-js-test262/etc/expectations.yaml | 184 | # (the harness file itself may exist, but it depends on engine internals we do not expose). | COMMENT |
| MEDIUM⚡ | karate-js-test262/etc/expectations.yaml | 189 | # its users no longer need a special harness. | COMMENT |
| MEDIUM | karate-js-test262/etc/run.sh | 44 | # to Test262Runner / the harness silently never take effect (this masked the | COMMENT |
| MEDIUM | …src/test/java/io/karatelabs/http/SessionStoreTest.java | 198 | // above if it's ms. This bound is robust through ~year 5000. | COMMENT |
| MEDIUM | …src/main/java/io/karatelabs/gherkin/GherkinParser.java | 729 | // Create synthetic step to leverage existing lexer states | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …a/io/karatelabs/profiling/workload/JsEvalWorkload.java | 0 | function processdata(items) { let result = { sum: 0, count: 0, values: [] }; for (let i = 0; i < items.length; i++) { le | STRING |
| HIGH | …src/test/java/io/karatelabs/parser/LexerBenchmark.java | 0 | function processdata(items) { let result = { sum: 0, count: 0, values: [] }; for (let i = 0; i < items.length; i++) { le | STRING |
| HIGH | …e-js/src/test/java/io/karatelabs/js/SlotFrameTest.java | 0 | function processdata(items) { let result = { sum: 0, count: 0, values: [] }; for (let i = 0; i < items.length; i++) { le | STRING |
| HIGH | …test/java/io/karatelabs/output/ResultListenerTest.java | 0 | feature: failing test scenario: passing * def a = 1 scenario: failing * def b = 2 * match b == 999 | STRING |
| HIGH | …/java/io/karatelabs/output/CucumberJsonWriterTest.java | 0 | feature: failing test scenario: passing * def a = 1 scenario: failing * def b = 2 * match b == 999 | STRING |
| HIGH | …test/java/io/karatelabs/output/JunitXmlWriterTest.java | 0 | feature: failing test scenario: passing * def a = 1 scenario: failing * def b = 2 * match b == 999 | STRING |
| HIGH | …ava/io/karatelabs/output/JsonLinesEventWriterTest.java | 0 | feature: failing test scenario: passing * def a = 1 scenario: failing * def b = 2 * match b == 999 | STRING |
| HIGH | …test/java/io/karatelabs/http/ApacheHttpClientTest.java | 0 | feature: echo scenario: pathmatches('/ping') * def response = { ok: true } | STRING |
| HIGH | …karatelabs/http/ApacheHttpClientConfigRebuildTest.java | 0 | feature: echo scenario: pathmatches('/ping') * def response = { ok: true } | STRING |
| HIGH | …t/java/io/karatelabs/http/HttpClientLifecycleTest.java | 0 | feature: echo scenario: pathmatches('/ping') * def response = { ok: true } | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …src/test/java/io/karatelabs/js/ExternalBridgeTest.java | 62 | // Step 1: def foo = { bar: function(){ return 'baz' } } | COMMENT |
| LOW⚡ | …src/test/java/io/karatelabs/js/ExternalBridgeTest.java | 64 | // Step 2: def result = foo.bar() | COMMENT |
| LOW⚡ | …-js/src/main/java/io/karatelabs/js/JsSetPrototype.java | 277 | // Step 4: copy this into result. | COMMENT |
| LOW⚡ | …-js/src/main/java/io/karatelabs/js/JsSetPrototype.java | 282 | // Step 5: iterate this; remove entries that other.has() reports. | COMMENT |
| LOW⚡ | …-js/src/main/java/io/karatelabs/js/JsSetPrototype.java | 292 | // Step 6: iterate other.keys(); remove matches from result. | COMMENT |
| LOW⚡ | …-js/src/main/java/io/karatelabs/js/JsSetPrototype.java | 319 | // Step 5: copy this into result. | COMMENT |
| LOW⚡ | …-js/src/main/java/io/karatelabs/js/JsSetPrototype.java | 323 | // Step 7: for each value from other.keys(), remove from result if present | COMMENT |
| LOW | docs/MIGRATION_GUIDE.md | 9 | ### Step 1: Update Maven Dependencies | COMMENT |
| LOW | docs/MIGRATION_GUIDE.md | 39 | ### Step 2: Update Java Version | COMMENT |
| LOW⚡ | …main/java/io/karatelabs/core/KarateOptionsHandler.java | 83 | // Step 1: individual sysprops (lower precedence than karate.options) | COMMENT |
| LOW⚡ | …main/java/io/karatelabs/core/KarateOptionsHandler.java | 86 | // Step 2: karate.options sysprop / env var (higher precedence — applied last) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …src/test/java/io/karatelabs/js/ExternalBridgeTest.java | 62 | // Step 1: def foo = { bar: function(){ return 'baz' } } | COMMENT |
| LOW⚡ | …src/test/java/io/karatelabs/js/ExternalBridgeTest.java | 64 | // Step 2: def result = foo.bar() | COMMENT |
| LOW⚡ | …-js/src/main/java/io/karatelabs/js/JsSetPrototype.java | 277 | // Step 4: copy this into result. | COMMENT |
| LOW⚡ | …-js/src/main/java/io/karatelabs/js/JsSetPrototype.java | 282 | // Step 5: iterate this; remove entries that other.has() reports. | COMMENT |
| LOW⚡ | …-js/src/main/java/io/karatelabs/js/JsSetPrototype.java | 292 | // Step 6: iterate other.keys(); remove matches from result. | COMMENT |
| LOW⚡ | …-js/src/main/java/io/karatelabs/js/JsSetPrototype.java | 319 | // Step 5: copy this into result. | COMMENT |
| LOW⚡ | …-js/src/main/java/io/karatelabs/js/JsSetPrototype.java | 323 | // Step 7: for each value from other.keys(), remove from result if present | COMMENT |
| LOW⚡ | …main/java/io/karatelabs/core/KarateOptionsHandler.java | 83 | // Step 1: individual sysprops (lower precedence than karate.options) | COMMENT |
| LOW⚡ | …main/java/io/karatelabs/core/KarateOptionsHandler.java | 86 | // Step 2: karate.options sysprop / env var (higher precedence — applied last) | COMMENT |
| LOW | …-core/src/main/java/io/karatelabs/match/Operation.java | 313 | // we need to check if any element in the list matches the expected value | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …src/test/java/io/karatelabs/parser/LexerBenchmark.java | 65 | const name = 'John Doe'; | CODE |
| LOW | docs/DESIGN.md | 160 | * def rows = karate.suite.dryRun ? [{ name: 'placeholder' }] : fetchFromDb() | COMMENT |
| LOW | …core/src/test/java/io/karatelabs/core/StepDocTest.java | 89 | Files.writeString(template, "<html><body><span th:text=\"'placeholder'\">placeholder</span></body></html>"); | STRING |
| LOW | …core/src/test/java/io/karatelabs/core/StepDocTest.java | 229 | * def name = 'John Doe' | COMMENT |
| LOW | …core/src/test/java/io/karatelabs/core/StepDocTest.java | 231 | * match result contains 'John Doe' | COMMENT |
| LOW | …src/test/java/io/karatelabs/core/mock/MockE2eTest.java | 1793 | * configure auth = { type: 'jwt', algorithm: 'HS256', secret: 'your-256-bit-secret', header: { typ: 'JWT' }, | COMMENT |
| LOW | …e/src/test/java/io/karatelabs/driver/LocatorsTest.java | 581 | String result = Locators.inputJs("#name", "John Doe"); | STRING |
| LOW | …rc/test/java/io/karatelabs/driver/e2e/KeysE2eTest.java | 81 | driver.keys().type("test@test.com"); | CODE |
| LOW | …rc/test/java/io/karatelabs/driver/e2e/KeysE2eTest.java | 85 | assertEquals("test@test.com", emailValue); | CODE |
| LOW | …test/java/io/karatelabs/driver/e2e/ElementE2eTest.java | 77 | String placeholder = driver.attribute("#username", "placeholder"); | CODE |
| LOW | …/test/java/io/karatelabs/driver/e2e/DialogE2eTest.java | 136 | dialog.accept("John Doe"); | CODE |
| LOW | …st/java/io/karatelabs/output/HtmlReportWriterTest.java | 1813 | * def token = 'fake-token' | COMMENT |
| LOW | …ava/io/karatelabs/http/HttpRequestBuilderCurlTest.java | 55 | body.put("name", "John Doe"); | CODE |
| LOW | …ava/io/karatelabs/http/HttpRequestBuilderCurlTest.java | 517 | body.put("name", "John Doe"); | CODE |
| LOW | …core/src/test/java/io/karatelabs/http/DemoAppTest.java | 146 | assertTrue(body.contains("test@test.com")); | CODE |
| LOW | …core/src/test/java/io/karatelabs/http/DemoAppTest.java | 652 | assertTrue(body.contains("John Doe")); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | karate-profiling/etc/ec2/provision.sh | 2 | # Create the two-host bench: security group, cluster placement group, two | COMMENT |
| MEDIUM | …src/test/java/io/karatelabs/core/mock/MockE2eTest.java | 1296 | # Define a function to check condition | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/DRIVER.md | 204 | # orchestration.feature - receives inherited driverConfig | COMMENT |
| MEDIUM | …c/main/java/io/karatelabs/output/HtmlReportWriter.java | 813 | // it actually has, including a feature-level marker like @scaffold. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …rc/main/java/io/karatelabs/markup/KaDataProcessor.java | 65 | class KaDataProcessor extends AbstractElementModelProcessor { | CODE |
| LOW | …main/java/io/karatelabs/http/ServerRequestHandler.java | 62 | public class ServerRequestHandler implements Function<HttpRequest, HttpResponse> { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | etc/test-cli.sh | 14 | # Check if rebuild is needed | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ore/src/main/java/io/karatelabs/core/KarateJsBase.java | 96 | // TODO: implement whitelisting for safety - the default bridge allows access to all Java classes | COMMENT |