Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- Manifest: services/common/tests/unit/xpcshell.toml
const { TelemetryTestUtils } = ChromeUtils.importESModule(
);
const { UptakeTelemetry } = ChromeUtils.importESModule(
);
const COMPONENT = "remotesettings";
const GLEAN_COMPONENT = "Remotesettings";
add_task(async function test_unknown_status_is_not_reported() {
const source = "update-source";
const startSnapshot = getUptakeTelemetrySnapshot(COMPONENT, source);
try {
await UptakeTelemetry.report(GLEAN_COMPONENT, "unknown-status", { source });
} catch (e) {}
const endSnapshot = getUptakeTelemetrySnapshot(COMPONENT, source);
Assert.deepEqual(startSnapshot, endSnapshot);
});
add_task(async function test_age_is_converted_to_string_and_reported() {
const status = UptakeTelemetry.STATUS.SUCCESS;
const age = 42;
await UptakeTelemetry.report(GLEAN_COMPONENT, status, { source: "s", age });
TelemetryTestUtils.assertEvents([
[
"uptake.remotecontent.result",
"uptake",
COMPONENT,
status,
{ source: "s", age: `${age}` },
],
]);
});
add_task(async function test_each_status_can_be_caught_in_snapshot() {
const source = "some-source";
const startSnapshot = getUptakeTelemetrySnapshot(COMPONENT, source);
const expectedIncrements = {};
for (const status of Object.values(UptakeTelemetry.STATUS)) {
expectedIncrements[status] = 1;
await UptakeTelemetry.report(GLEAN_COMPONENT, status, { source });
}
const endSnapshot = getUptakeTelemetrySnapshot(COMPONENT, source);
checkUptakeTelemetry(startSnapshot, endSnapshot, expectedIncrements);
});