Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 31 additions & 4 deletions common/src/util/__tests__/axiom-complete-response.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,39 @@ describe('isCompleteAxiomResponse', () => {
})

describe('assertCompleteAxiomResponse', () => {
test('names the caller in the error', () => {
expect(() =>
assertCompleteAxiomResponse({ status: { isPartial: true } }, 'hour 12'),
).toThrow(/^hour 12: Axiom returned a partial or statusless answer/)
test('does not throw for a complete response', () => {
expect(() =>
assertCompleteAxiomResponse({ status: { isPartial: false } }, 'hour 12'),
).not.toThrow()
})

test('throws for a partial response with the caller name', () => {
expect(() =>
assertCompleteAxiomResponse({ status: { isPartial: true } }, 'hour 12'),
).toThrow(/^hour 12: Axiom returned a partial or statusless answer$/)
})

test('throws for a statusless response — not just partials', () => {
expect(() =>
assertCompleteAxiomResponse({ buckets: { totals: [] } }, 'hour 12'),
).toThrow(/^hour 12: Axiom returned a partial or statusless answer$/)

expect(() =>
assertCompleteAxiomResponse({ status: {} }, 'hour 12'),
).toThrow(/^hour 12: Axiom returned a partial or statusless answer$/)

expect(() =>
assertCompleteAxiomResponse({ status: null }, 'hour 12'),
).toThrow(/^hour 12: Axiom returned a partial or statusless answer$/)
})

test('throws for non-object inputs', () => {
expect(() =>
assertCompleteAxiomResponse(null, 'hour 12'),
).toThrow(/^hour 12: Axiom returned a partial or statusless answer$/)

expect(() =>
assertCompleteAxiomResponse(undefined, 'hour 12'),
).toThrow(/^hour 12: Axiom returned a partial or statusless answer$/)
})
})
Loading