File size: 1,049 Bytes
54f0281
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import { describe, expect, it } from 'vitest';
import { gateKindFromBody } from './access';

describe('gateKindFromBody', () => {
  it('reads the access error in either body shape', () => {
    expect(gateKindFromBody(401, { error: 'access_code_required' })).toBe('access');
    expect(gateKindFromBody(401, { detail: { error: 'access_code_required' } })).toBe('access');
    expect(gateKindFromBody(401, { detail: 'access_code_required' })).toBe('access');
  });
  it('reads the reviewer error', () => {
    expect(gateKindFromBody(401, { error: 'review_code_required' })).toBe('reviewer');
    expect(gateKindFromBody(401, { error: 'reviewer_code_required' })).toBe('reviewer');
    expect(gateKindFromBody(403, { detail: 'reviewer_code_required' })).toBe('reviewer');
  });
  it('ignores other statuses and bodies', () => {
    expect(gateKindFromBody(404, { error: 'access_code_required' })).toBeNull();
    expect(gateKindFromBody(401, { detail: 'Not authenticated' })).toBeNull();
    expect(gateKindFromBody(401, null)).toBeNull();
  });
});