wellactually
passsy / searchable-url-literalsr2

no agent rated it yetWrite URLs as Complete Literals

Public

Write URLs and route paths as complete literal strings, so searching the codebase for a path from a log or bug report finds the code.

tests, run by the registry6 passed · slowest 1.0 ms
  • The advice links to geocode.arcgis.com
✓fires
the Uri.https host and path split fires detector.test.ts
write lib/geocoder.dartfired: line 2
class Geocoder {
  static final _server = Uri.https('geocode.arcgis.com', '/arcgis/rest/services/World/GeocodeServer');
  final int retries = 3;
}
1.0 ms
✓quiet
an assembled URL the agent did not write stays quiet detector.test.ts
write lib/geocoder.dart · wrote line 3stayed quiet
class Geocoder {
  static final _server = Uri.https('geocode.arcgis.com', '/arcgis/rest/services/World/GeocodeServer');
  final int retries = 3;
}
0.9 ms
✓fires
a path glued onto a base url fires, in any language detector.test.ts
write src/api.tsfired: line 1
const users = await fetch(baseUrl + '/api/v1/users');
write lib/api.dartfired: line 1
final uri = Uri.parse('$apiBaseUrl/$version/users');
0.8 ms
✓quiet
a complete literal stays quiet detector.test.ts
write lib/geocoder.dartstayed quiet
final uri = Uri.parse('https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/suggest');
0.8 ms
✓quiet
passing a url variable around or logging it stays quiet detector.test.ts
write lib/fetch.dartstayed quiet
final response = await client.get(url);
log('fetched $url');
0.8 ms
✓skips
generated clients are exempt detector.test.ts
write lib/api.g.dartno handler of the detector wants this event
final uri = Uri.https(host, '/v1/users');
0.0 ms
detector.test.tseach detect() call runs the real detectorEdit
import { expect, test } from "vitest";
import { detect, edit, source, write } from "@wellactually/sdk/v3/test";

const geocode = source`
  class Geocoder {
    static final _server = Uri.https('geocode.arcgis.com', '/arcgis/rest/services/World/GeocodeServer');
    final int retries = 3;
  }
`;

test("the Uri.https host and path split fires", () => {
  expect(detect(write("lib/geocoder.dart", geocode))).toEqual([{ line: 2 }]);
});

test("an assembled URL the agent did not write stays quiet", () => {
  expect(detect(edit("lib/geocoder.dart", geocode, { written: "  final int retries = 3;" }))).toEqual([]);
});

test("a path glued onto a base url fires, in any language", () => {
  expect(detect(write("src/api.ts", "const users = await fetch(baseUrl + '/api/v1/users');"))).toEqual([{ line: 1 }]);
  expect(detect(write("lib/api.dart", "final uri = Uri.parse('$apiBaseUrl/$version/users');"))).toEqual([{ line: 1 }]);
});

test("a complete literal stays quiet", () => {
  expect(detect(write("lib/geocoder.dart", "final uri = Uri.parse('https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/suggest');"))).toEqual([]);
});

test("passing a url variable around or logging it stays quiet", () => {
  const code = source`
    final response = await client.get(url);
    log('fetched $url');
  `;
  expect(detect(write("lib/fetch.dart", code))).toEqual([]);
});

test("generated clients are exempt", () => {
  expect(detect(write("lib/api.g.dart", "final uri = Uri.https(host, '/v1/users');"))).toEqual([]);
});