@oselvar/c4
Version:
Test helpers for Cloudflare Workers
58 lines (57 loc) • 1.6 kB
JavaScript
import {
globalC4ModelBuilder,
globalC4Ready
} from "../chunk-FSPEOTJL.js";
import "../chunk-ZMBFSHSD.js";
// src/vitest/setup.ts
import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
import { ExportResultCode } from "@opentelemetry/core";
import { JsonTraceSerializer } from "@opentelemetry/otlp-transformer";
import { NodeSDK } from "@opentelemetry/sdk-node";
import {
BatchSpanProcessor
} from "@opentelemetry/sdk-trace-base";
import { afterAll, afterEach, beforeAll, beforeEach } from "vitest";
var processor;
var sdk;
var spans;
beforeAll(() => {
if (processor) {
return;
}
spans = [];
processor = new BatchSpanProcessor({
export: (_spans, resultCallback) => {
spans = [...spans, ..._spans];
resultCallback({ code: ExportResultCode.SUCCESS });
},
shutdown: async () => {
}
});
sdk = new NodeSDK({
spanProcessor: processor,
instrumentations: [getNodeAutoInstrumentations()]
});
sdk.start();
globalC4Ready();
});
afterAll(async (suite) => {
await processor.forceFlush();
await sdk.shutdown();
if (spans.length > 0) {
const serializedSpans = JsonTraceSerializer.serializeRequest(spans);
if (serializedSpans) {
const meta = suite.meta;
meta.serializedSpans = serializedSpans;
}
}
});
beforeEach((test) => {
const callchainName = test.task.name || "Unnamed Test";
globalC4ModelBuilder.startCallchain(callchainName);
});
afterEach(async (test) => {
const meta = test.task.meta;
meta.c4Model = globalC4ModelBuilder.build();
});
//# sourceMappingURL=setup.js.map