summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/helpers/parseBackupFlags.test.ts
blob: 479e967b7ac35d9dfbe762f7286c504377aae0b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { assertEquals } from 'https://deno.land/std@0.198.0/assert/mod.ts';

import { InvalidBackupFlags, parseBackupFlags } from './parseBackupFlags.ts';
import { assertThrows } from 'https://deno.land/std@0.198.0/assert/assert_throws.ts';

Deno.test('should return single-device cred, not backed up', () => {
  const parsed = parseBackupFlags({ be: false, bs: false });

  assertEquals(parsed.credentialDeviceType, 'singleDevice');
  assertEquals(parsed.credentialBackedUp, false);
});

Deno.test('should throw on single-device cred, backed up', () => {
  assertThrows(
    () => parseBackupFlags({ be: false, bs: true }),
    InvalidBackupFlags,
    'impossible',
  );
});

Deno.test('should return multi-device cred, not backed up', () => {
  const parsed = parseBackupFlags({ be: true, bs: false });

  assertEquals(parsed.credentialDeviceType, 'multiDevice');
  assertEquals(parsed.credentialBackedUp, false);
});

Deno.test('should return multi-device cred, backed up', () => {
  const parsed = parseBackupFlags({ be: true, bs: true });

  assertEquals(parsed.credentialDeviceType, 'multiDevice');
  assertEquals(parsed.credentialBackedUp, true);
});