Skip to content

Commit

Permalink
Add tests for decodeRecoveryKey
Browse files Browse the repository at this point in the history
  • Loading branch information
florianduros committed Sep 12, 2024
1 parent 87bd00e commit 6a59684
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions spec/unit/rust-crypto/recovery-key.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* Copyright 2024 The Matrix.org Foundation C.I.C.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

import { decodeRecoveryKey, encodeRecoveryKey } from "../../../src/crypto-api";

describe("recovery key", () => {
describe("decodeRecoveryKey", () => {
it("should thrown an incorrect parity", () => {
expect(() => decodeRecoveryKey("alice")).toThrow("Incorrect parity");

Check failure on line 22 in spec/unit/rust-crypto/recovery-key.spec.ts

View workflow job for this annotation

GitHub Actions / Jest [unit] (Node lts/*)

recovery key › decodeRecoveryKey › should thrown an incorrect parity

expect(received).toThrow(expected) Expected substring: "Incorrect parity" Received message: "Non-base58 character" 46 | */ 47 | export function decodeRecoveryKey(recoveryKey: string): Uint8Array { > 48 | const result = bs58.decode(recoveryKey.replace(/ /g, "")); | ^ 49 | 50 | let parity = 0; 51 | for (const b of result) { at Object.decode (node_modules/bs58/node_modules/base-x/src/cjs/index.cjs:114:11) at decode (src/crypto-api/recovery-key.ts:48:25) at spec/unit/rust-crypto/recovery-key.spec.ts:22:43 at Object.<anonymous> (node_modules/expect/build/toThrowMatchers.js:74:11) at Object.throwingMatcher [as toThrow] (node_modules/expect/build/index.js:320:21) at Object.toThrow (spec/unit/rust-crypto/recovery-key.spec.ts:22:54) at Object.toThrow (spec/unit/rust-crypto/recovery-key.spec.ts:22:54)

Check failure on line 22 in spec/unit/rust-crypto/recovery-key.spec.ts

View workflow job for this annotation

GitHub Actions / Jest [unit] (Node 22)

recovery key › decodeRecoveryKey › should thrown an incorrect parity

expect(received).toThrow(expected) Expected substring: "Incorrect parity" Received message: "Non-base58 character" 46 | */ 47 | export function decodeRecoveryKey(recoveryKey: string): Uint8Array { > 48 | const result = bs58.decode(recoveryKey.replace(/ /g, "")); | ^ 49 | 50 | let parity = 0; 51 | for (const b of result) { at Object.decode (node_modules/bs58/node_modules/base-x/src/cjs/index.cjs:114:11) at decode (src/crypto-api/recovery-key.ts:48:25) at spec/unit/rust-crypto/recovery-key.spec.ts:22:43 at Object.<anonymous> (node_modules/expect/build/toThrowMatchers.js:74:11) at Object.throwingMatcher [as toThrow] (node_modules/expect/build/index.js:320:21) at Object.toThrow (spec/unit/rust-crypto/recovery-key.spec.ts:22:54) at Object.toThrow (spec/unit/rust-crypto/recovery-key.spec.ts:22:54)
});

it("should thrown an incorrect length error", () => {
const key = [0, 1];
const encodedKey = encodeRecoveryKey(key);

expect(() => decodeRecoveryKey(encodedKey!)).toThrow("Incorrect length");
});

it("should decode a valid encoded key", () => {
const key = Array.from({ length: 32 }, (_, i) => i);
const encodedKey = encodeRecoveryKey(key);

expect(decodeRecoveryKey(encodedKey!)).toEqual(new Uint8Array(key));
});
});
});

0 comments on commit 6a59684

Please sign in to comment.