Files
zpan/server/http/internal.integration.test.ts
T
Jasper Van b92df828ab ci: parallelize and isolate test suites (#556)
* ci: parallelize and isolate test suites

* ci: avoid unavailable Playwright video runtime

* ci: shard coverage and cache docker smoke

* ci: balance Playwright shards by test

* ci: smoke test the CLI container

* ci: enforce merged coverage thresholds

* ci: ratchet canonical coverage baseline

* ci: make coverage ratchet lossless

* ci: organize parallel gates by responsibility

* perf(ci): reduce total runner time

* perf(ci): balance runner cost and latency

* perf(ci): suppress passing test logs

* fix(test): make coverage sorting proof deterministic

* perf(docker): exclude test-only build inputs

* perf(ci): scope Docker smokes to packaging changes

* refactor(test): enforce fast test boundaries

* test: isolate coverage ownership

* perf(test): run backend projects concurrently

* perf(ci): separate test layers by runtime

* perf(test): separate integration boundaries

* perf(ci): prioritize test runners

* docs(ci): clarify package scheduling

* test: restore shared Cloudflare mocks

* fix(preview): isolate Cloudflare E2E build config

* fix(auth): bind preview sessions to request origin

* revert: remove ineffective preview auth workaround

* fix(auth): stop signing JWTs on session reads
2026-08-05 15:01:12 -04:00

65 lines
2.0 KiB
TypeScript

import { beforeEach, describe, expect, it, vi } from 'vitest'
import { createTestApp } from '../test/setup.js'
import { reportInstanceTelemetry } from '../usecases/site/instance-telemetry'
vi.mock('../usecases/site/instance-telemetry', () => ({
INSTANCE_TELEMETRY_CRON: '0 */12 * * *',
reportInstanceTelemetry: vi.fn(),
}))
describe('POST /api/internal/instance-telemetry/report', () => {
beforeEach(() => {
vi.mocked(reportInstanceTelemetry).mockReset()
vi.mocked(reportInstanceTelemetry).mockResolvedValue({ reported: true })
})
it('returns 404 when the internal token is not configured', async () => {
const { app } = await createTestApp()
const res = await app.request('/api/internal/instance-telemetry/report', {
method: 'POST',
headers: { Authorization: 'Bearer test-token' },
})
expect(res.status).toBe(404)
expect(reportInstanceTelemetry).not.toHaveBeenCalled()
})
it('rejects requests with the wrong token', async () => {
const { app } = await createTestApp({ ZPAN_INTERNAL_API_TOKEN: 'test-token' })
const res = await app.request('/api/internal/instance-telemetry/report', {
method: 'POST',
headers: { Authorization: 'Bearer wrong-token' },
})
expect(res.status).toBe(401)
expect(reportInstanceTelemetry).not.toHaveBeenCalled()
})
it('reports telemetry with the configured internal token', async () => {
const { app, deps } = await createTestApp({
ZPAN_INTERNAL_API_TOKEN: 'test-token',
})
const res = await app.request('/api/internal/instance-telemetry/report', {
method: 'POST',
headers: { Authorization: 'Bearer test-token' },
})
expect(res.status).toBe(200)
expect(await res.json()).toEqual({ reported: true })
expect(reportInstanceTelemetry).toHaveBeenCalledWith(deps, {
config: {
allowIp: true,
},
cron: '0 */12 * * *',
trigger: 'deploy',
runtime: expect.objectContaining({
runtime: 'node',
platform: 'node',
}),
})
})
})