mirror of
https://github.com/bitwarden/browser
synced 2025-12-17 16:53:34 +00:00
* Clean up dangling behaviorSubject
* Handle null in utils
* fix null check
* Await promises, even in async functions
* Add to/fromJSON methods to State and Accounts
This is needed since all storage in manifest v3 is key-value-pair-based
and session storage of most data is actually serialized into an
encrypted string.
* Simplify AccountKeys json parsing
* Fix account key (de)serialization
* Remove unused DecodedToken state
* Correct filename typo
* Simplify keys `toJSON` tests
* Explain AccountKeys `toJSON` return type
* Remove unnecessary `any`s
* Remove unique ArrayBuffer serialization
* Initialize items in MemoryStorageService
* Revert "Fix account key (de)serialization"
This reverts commit b1dffb5c2c, which was breaking serializations
* Move fromJSON to owning object
* Add DeepJsonify type
* Use Records for storage
* Add new Account Settings to serialized data
* Fix failing serialization tests
* Extract complex type conversion to helper methods
* Remove unnecessary decorator
* Return null from json deserializers
* Remove unnecessary decorators
* Remove obsolete test
* Use type-fest `Jsonify` formatting rules for external library
* Update jsonify comment
Co-authored-by: @eliykat
* Remove erroneous comment
* Fix unintended deep-jsonify changes
* Fix prettierignore
* Fix formatting of deep-jsonify.ts
Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
25 lines
940 B
TypeScript
25 lines
940 B
TypeScript
import { AccountSettings, EncryptionPair } from "./account";
|
|
import { EncString } from "./encString";
|
|
|
|
describe("AccountSettings", () => {
|
|
describe("fromJSON", () => {
|
|
it("should deserialize to an instance of itself", () => {
|
|
expect(AccountSettings.fromJSON(JSON.parse("{}"))).toBeInstanceOf(AccountSettings);
|
|
});
|
|
|
|
it("should deserialize pinProtected", () => {
|
|
const accountSettings = new AccountSettings();
|
|
accountSettings.pinProtected = EncryptionPair.fromJSON<string, EncString>({
|
|
encrypted: "encrypted",
|
|
decrypted: "3.data",
|
|
});
|
|
const jsonObj = JSON.parse(JSON.stringify(accountSettings));
|
|
const actual = AccountSettings.fromJSON(jsonObj);
|
|
|
|
expect(actual.pinProtected).toBeInstanceOf(EncryptionPair);
|
|
expect(actual.pinProtected.encrypted).toEqual("encrypted");
|
|
expect(actual.pinProtected.decrypted.encryptedString).toEqual("3.data");
|
|
});
|
|
});
|
|
});
|