@dash0/sdk-web
Version:
Dash0's Web SDK to collect telemetry from end-users' web browsers
26 lines (25 loc) • 1.36 kB
JavaScript
import { describe, expect } from "vitest";
import { generateSpanId } from "./span-id";
describe("generateSpanId", () => {
it("returns a span ID of the expected length", () => {
expect(generateSpanId("abcdef1234567890abcdef1234567890")).toHaveLength(16);
});
it("returns the same prefix for the same trace ID", () => {
const traceId = "abcdef1234567890abcdef1234567890";
const spanId1 = generateSpanId(traceId);
const spanId2 = generateSpanId(traceId);
expect(spanId1.substring(0, 8)).toBe(spanId2.substring(0, 8));
expect(spanId1).not.equals(spanId2);
});
it("returns different prefix for span ID for different trace IDs", () => {
const spanId1 = generateSpanId("abcdef1234567890abcdef1234567890");
const spanId2 = generateSpanId("1234567890abcdef1234567890abcdef");
expect(spanId1.substring(0, 8)).not.equals(spanId2.substring(0, 8));
expect(spanId1).not.equals(spanId2);
});
it("return a span id with the correct prefix", () => {
expect(generateSpanId("abcdef1234567890abcdef1234567890").substring(0, 8)).toEqual("07d06023");
expect(generateSpanId("1234567890abcdef1234567890abcdef").substring(0, 8)).toEqual("75df3ddf");
expect(generateSpanId("d0420000a7a996090df1cac9a99d3cb7").substring(0, 8)).toEqual("120e82be");
});
});