diff --git a/tests/lib/extension/base/CachablePreferences.spec.ts b/tests/lib/extension/base/CachablePreferences.spec.ts index 93a719e..ca91d51 100644 --- a/tests/lib/extension/base/CachablePreferences.spec.ts +++ b/tests/lib/extension/base/CachablePreferences.spec.ts @@ -1,50 +1,6 @@ -import CacheablePreferences, { PreferenceField, type WithFields } from "$lib/extension/base/CacheablePreferences"; -import ConfigurationController from "$lib/extension/ConfigurationController"; -import ChromeStorageArea from "$tests/mocks/ChromeStorageArea"; -import StorageHelper from "$lib/browser/StorageHelper"; import { randomString } from "$tests/utils"; import { randomInt } from "crypto"; - -interface TestedFields { - numberField: number; - stringField: string; -} - -class TestedPreferences extends CacheablePreferences implements WithFields { - readonly defaults: TestedFields; - readonly mockedSettingsNamespace: string; - readonly mockedStorageArea: ChromeStorageArea; - readonly mockedStorageHelper: StorageHelper; - - numberField; - stringField; - - constructor(settingsNamespace: string, mockedDefaults: TestedFields) { - const mockedStorageArea = new ChromeStorageArea(); - const mockedStorageHelper = new StorageHelper(mockedStorageArea); - const mockedConfigurationController = new ConfigurationController( - settingsNamespace, - mockedStorageHelper, - ); - - super(settingsNamespace, mockedConfigurationController); - - this.mockedSettingsNamespace = settingsNamespace; - this.mockedStorageArea = mockedStorageArea; - this.mockedStorageHelper = mockedStorageHelper; - this.defaults = mockedDefaults; - - this.numberField = new PreferenceField(this, { - field: 'numberField', - defaultValue: this.defaults.numberField, - }); - - this.stringField = new PreferenceField(this, { - field: 'stringField', - defaultValue: this.defaults.stringField, - }); - } -} +import { TestedPreferences } from "$tests/stubs/Preferences"; describe('CachablePreferences', () => { let preferences: TestedPreferences; diff --git a/tests/lib/extension/base/StorageEntity.spec.ts b/tests/lib/extension/base/StorageEntity.spec.ts index 8329e41..b4aa0d3 100644 --- a/tests/lib/extension/base/StorageEntity.spec.ts +++ b/tests/lib/extension/base/StorageEntity.spec.ts @@ -1,26 +1,9 @@ -import StorageEntity from "$lib/extension/base/StorageEntity"; import ChromeStorageArea from "$tests/mocks/ChromeStorageArea"; import StorageHelper from "$lib/browser/StorageHelper"; import { randomString } from "$tests/utils"; import { randomInt } from "crypto"; import EntitiesController from "$lib/extension/EntitiesController"; - - -interface TestedSettings { - stringField: string; - numberField: number; - nested?: { - field: boolean; - }; -} - -class TestedEntity extends StorageEntity { - static readonly _entityName = "entity"; - - constructor(id: string, settings: TestedSettings) { - super(id, settings); - } -} +import { TestedEntity } from "$tests/stubs/Entity"; describe("StorageEntity", () => { let mockedStorageArea: ChromeStorageArea; diff --git a/tests/stubs/Entity.ts b/tests/stubs/Entity.ts new file mode 100644 index 0000000..6e65521 --- /dev/null +++ b/tests/stubs/Entity.ts @@ -0,0 +1,17 @@ +import StorageEntity from "$lib/extension/base/StorageEntity"; + +export interface TestedSettings { + stringField: string; + numberField: number; + nested?: { + field: boolean; + }; +} + +export class TestedEntity extends StorageEntity { + static readonly _entityName = "entity"; + + constructor(id: string, settings: TestedSettings) { + super(id, settings); + } +} diff --git a/tests/stubs/Preferences.ts b/tests/stubs/Preferences.ts new file mode 100644 index 0000000..d21c4ea --- /dev/null +++ b/tests/stubs/Preferences.ts @@ -0,0 +1,45 @@ +import CacheablePreferences, { PreferenceField, type WithFields } from "$lib/extension/base/CacheablePreferences"; +import ChromeStorageArea from "$tests/mocks/ChromeStorageArea"; +import StorageHelper from "$lib/browser/StorageHelper"; +import ConfigurationController from "$lib/extension/ConfigurationController"; + +export interface TestedFields { + numberField: number; + stringField: string; +} + +export class TestedPreferences extends CacheablePreferences implements WithFields { + readonly defaults: TestedFields; + readonly mockedSettingsNamespace: string; + readonly mockedStorageArea: ChromeStorageArea; + readonly mockedStorageHelper: StorageHelper; + + numberField; + stringField; + + constructor(settingsNamespace: string, mockedDefaults: TestedFields) { + const mockedStorageArea = new ChromeStorageArea(); + const mockedStorageHelper = new StorageHelper(mockedStorageArea); + const mockedConfigurationController = new ConfigurationController( + settingsNamespace, + mockedStorageHelper, + ); + + super(settingsNamespace, mockedConfigurationController); + + this.mockedSettingsNamespace = settingsNamespace; + this.mockedStorageArea = mockedStorageArea; + this.mockedStorageHelper = mockedStorageHelper; + this.defaults = mockedDefaults; + + this.numberField = new PreferenceField(this, { + field: 'numberField', + defaultValue: this.defaults.numberField, + }); + + this.stringField = new PreferenceField(this, { + field: 'stringField', + defaultValue: this.defaults.stringField, + }); + } +}