summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/helpers/parseBackupFlags.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/server/src/helpers/parseBackupFlags.test.ts')
-rw-r--r--packages/server/src/helpers/parseBackupFlags.test.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/packages/server/src/helpers/parseBackupFlags.test.ts b/packages/server/src/helpers/parseBackupFlags.test.ts
new file mode 100644
index 0000000..3133137
--- /dev/null
+++ b/packages/server/src/helpers/parseBackupFlags.test.ts
@@ -0,0 +1,34 @@
+import { parseBackupFlags } from './parseBackupFlags';
+
+test('should return single-device cred, not backed up', () => {
+ const parsed = parseBackupFlags({ be: false, bs: false });
+
+ expect(parsed.credentialDeviceType).toEqual('singleDevice');
+ expect(parsed.credentialBackedUp).toEqual(false);
+});
+
+test('should throw on single-device cred, backed up', () => {
+ expect.assertions(2);
+
+ try {
+ parseBackupFlags({ be: false, bs: true });
+ } catch (err) {
+ const _err: Error = err as Error;
+ expect(_err.message).toContain('impossible');
+ expect(_err.name).toEqual('InvalidBackupFlags')
+ }
+});
+
+test('should return multi-device cred, not backed up', () => {
+ const parsed = parseBackupFlags({ be: true, bs: false });
+
+ expect(parsed.credentialDeviceType).toEqual('multiDevice');
+ expect(parsed.credentialBackedUp).toEqual(false);
+});
+
+test('should return multi-device cred, backed up', () => {
+ const parsed = parseBackupFlags({ be: true, bs: true });
+
+ expect(parsed.credentialDeviceType).toEqual('multiDevice');
+ expect(parsed.credentialBackedUp).toEqual(true);
+});