1- import { get , type Writable } from 'svelte/store' ;
21import { faker } from '@faker-js/faker' ;
32import EventEmitter from 'node:events' ;
43import { beforeEach , describe , expect , it , vi } from 'vitest' ;
@@ -21,7 +20,7 @@ describe('constructor', () => {
2120 } ) ;
2221} ) ;
2322
24- describe ( 'createStore ' , ( ) => {
23+ describe ( 'createPreference ' , ( ) => {
2524 beforeEach ( ( ) => {
2625 const addListener = vi . fn ( ) ;
2726 vi . spyOn ( chrome . storage . onChanged , 'addListener' ) . mockImplementation (
@@ -32,23 +31,23 @@ describe('createStore', () => {
3231 } ) ;
3332
3433 it . each ( [ 'value' , 2 , false , true , [ 'value' ] , [ 2 ] , [ false ] , [ true ] ] ) (
35- 'creates and returns a store for value: %p' ,
34+ 'creates and returns a preference for value: %p' ,
3635 ( value : Treetop . PreferenceValue ) => {
3736 const name = faker . word . sample ( ) ;
38- const store = preferencesManager . createStore ( name , value ) ;
37+ const preference = preferencesManager . createPreference ( name , value ) ;
3938
40- expect ( get ( store ) ) . toBe ( value ) ;
39+ expect ( preference ( ) ) . toBe ( value ) ;
4140 } ,
4241 ) ;
4342} ) ;
4443
4544describe ( 'loadPreferences' , ( ) => {
46- let stringStore : Writable < Treetop . PreferenceValue > ;
47- let numberStore : Writable < Treetop . PreferenceValue > ;
48- let booleanStore : Writable < Treetop . PreferenceValue > ;
49- let stringArrayStore : Writable < Treetop . PreferenceValue > ;
50- let numberArrayStore : Writable < Treetop . PreferenceValue > ;
51- let booleanArrayStore : Writable < Treetop . PreferenceValue > ;
45+ let stringPreference : ( ) => Treetop . PreferenceValue ;
46+ let numberPreference : ( ) => Treetop . PreferenceValue ;
47+ let booleanPreference : ( ) => Treetop . PreferenceValue ;
48+ let stringArrayPreference : ( ) => Treetop . PreferenceValue ;
49+ let numberArrayPreference : ( ) => Treetop . PreferenceValue ;
50+ let booleanArrayPreference : ( ) => Treetop . PreferenceValue ;
5251
5352 beforeEach ( ( ) => {
5453 const addListener = vi . fn ( ) ;
@@ -57,17 +56,24 @@ describe('loadPreferences', () => {
5756 ) ;
5857
5958 preferencesManager = new PreferencesManager ( ) ;
60- stringStore = preferencesManager . createStore ( 'string' , 'value' ) ;
61- numberStore = preferencesManager . createStore ( 'number' , 2 ) ;
62- booleanStore = preferencesManager . createStore ( 'boolean' , true ) ;
63- stringArrayStore = preferencesManager . createStore ( 'string_array' , [
64- 'value' ,
65- ] ) ;
66- numberArrayStore = preferencesManager . createStore ( 'number_array' , [ 2 ] ) ;
67- booleanArrayStore = preferencesManager . createStore ( 'boolean_array' , [ true ] ) ;
59+ stringPreference = preferencesManager . createPreference ( 'string' , 'value' ) ;
60+ numberPreference = preferencesManager . createPreference ( 'number' , 2 ) ;
61+ booleanPreference = preferencesManager . createPreference ( 'boolean' , true ) ;
62+ stringArrayPreference = preferencesManager . createPreference (
63+ 'string_array' ,
64+ [ 'value' ] ,
65+ ) ;
66+ numberArrayPreference = preferencesManager . createPreference (
67+ 'number_array' ,
68+ [ 2 ] ,
69+ ) ;
70+ booleanArrayPreference = preferencesManager . createPreference (
71+ 'boolean_array' ,
72+ [ true ] ,
73+ ) ;
6874 } ) ;
6975
70- it ( 'loads preferences from storage and initializes stores ' , async ( ) => {
76+ it ( 'loads preferences from storage and initializes preference state ' , async ( ) => {
7177 const values = {
7278 string : 'value2' ,
7379 number : 3 ,
@@ -83,15 +89,15 @@ describe('loadPreferences', () => {
8389
8490 await preferencesManager . loadPreferences ( ) ;
8591
86- expect ( get ( stringStore ) ) . toBe ( 'value2' ) ;
87- expect ( get ( numberStore ) ) . toBe ( 3 ) ;
88- expect ( get ( booleanStore ) ) . toBe ( false ) ;
89- expect ( get ( stringArrayStore ) ) . toStrictEqual ( [ 'value2' ] ) ;
90- expect ( get ( numberArrayStore ) ) . toStrictEqual ( [ 3 ] ) ;
91- expect ( get ( booleanArrayStore ) ) . toStrictEqual ( [ false ] ) ;
92+ expect ( stringPreference ( ) ) . toBe ( 'value2' ) ;
93+ expect ( numberPreference ( ) ) . toBe ( 3 ) ;
94+ expect ( booleanPreference ( ) ) . toBe ( false ) ;
95+ expect ( stringArrayPreference ( ) ) . toStrictEqual ( [ 'value2' ] ) ;
96+ expect ( numberArrayPreference ( ) ) . toStrictEqual ( [ 3 ] ) ;
97+ expect ( booleanArrayPreference ( ) ) . toStrictEqual ( [ false ] ) ;
9298 } ) ;
9399
94- it ( 'ignores preferences from storage without a corresponding store ' , async ( ) => {
100+ it ( 'ignores preferences from storage without a corresponding preference ' , async ( ) => {
95101 const values = { other : true } ;
96102
97103 vi . spyOn ( chrome . storage . local , 'get' ) . mockImplementation (
@@ -102,14 +108,14 @@ describe('loadPreferences', () => {
102108 } ) ;
103109} ) ;
104110
105- describe ( 'handleStoreChanged ' , ( ) => {
111+ describe ( 'handleStorageChanged ' , ( ) => {
106112 let emitter : EventEmitter ;
107- let stringStore : Writable < Treetop . PreferenceValue > ;
108- let numberStore : Writable < Treetop . PreferenceValue > ;
109- let booleanStore : Writable < Treetop . PreferenceValue > ;
110- let stringArrayStore : Writable < Treetop . PreferenceValue > ;
111- let numberArrayStore : Writable < Treetop . PreferenceValue > ;
112- let booleanArrayStore : Writable < Treetop . PreferenceValue > ;
113+ let stringPreference : ( ) => Treetop . PreferenceValue ;
114+ let numberPreference : ( ) => Treetop . PreferenceValue ;
115+ let booleanPreference : ( ) => Treetop . PreferenceValue ;
116+ let stringArrayPreference : ( ) => Treetop . PreferenceValue ;
117+ let numberArrayPreference : ( ) => Treetop . PreferenceValue ;
118+ let booleanArrayPreference : ( ) => Treetop . PreferenceValue ;
113119
114120 beforeEach ( ( ) => {
115121 emitter = new EventEmitter ( ) ;
@@ -120,17 +126,24 @@ describe('handleStoreChanged', () => {
120126 ) ;
121127
122128 preferencesManager = new PreferencesManager ( ) ;
123- stringStore = preferencesManager . createStore ( 'string' , 'value' ) ;
124- numberStore = preferencesManager . createStore ( 'number' , 3 ) ;
125- booleanStore = preferencesManager . createStore ( 'boolean' , true ) ;
126- stringArrayStore = preferencesManager . createStore ( 'string_array' , [
127- 'value' ,
128- ] ) ;
129- numberArrayStore = preferencesManager . createStore ( 'number_array' , [ 2 ] ) ;
130- booleanArrayStore = preferencesManager . createStore ( 'boolean_array' , [ true ] ) ;
129+ stringPreference = preferencesManager . createPreference ( 'string' , 'value' ) ;
130+ numberPreference = preferencesManager . createPreference ( 'number' , 3 ) ;
131+ booleanPreference = preferencesManager . createPreference ( 'boolean' , true ) ;
132+ stringArrayPreference = preferencesManager . createPreference (
133+ 'string_array' ,
134+ [ 'value' ] ,
135+ ) ;
136+ numberArrayPreference = preferencesManager . createPreference (
137+ 'number_array' ,
138+ [ 2 ] ,
139+ ) ;
140+ booleanArrayPreference = preferencesManager . createPreference (
141+ 'boolean_array' ,
142+ [ true ] ,
143+ ) ;
131144 } ) ;
132145
133- it ( 'updates stores when store values change' , ( ) => {
146+ it ( 'updates preferences when storage values change' , ( ) => {
134147 const changes = {
135148 string : {
136149 newValue : 'value2' ,
@@ -154,15 +167,15 @@ describe('handleStoreChanged', () => {
154167
155168 emitter . emit ( 'onChanged' , changes , 'local' ) ;
156169
157- expect ( get ( stringStore ) ) . toBe ( 'value2' ) ;
158- expect ( get ( numberStore ) ) . toBe ( 4 ) ;
159- expect ( get ( booleanStore ) ) . toBe ( false ) ;
160- expect ( get ( stringArrayStore ) ) . toStrictEqual ( [ 'value2' ] ) ;
161- expect ( get ( numberArrayStore ) ) . toStrictEqual ( [ 3 ] ) ;
162- expect ( get ( booleanArrayStore ) ) . toStrictEqual ( [ false ] ) ;
170+ expect ( stringPreference ( ) ) . toBe ( 'value2' ) ;
171+ expect ( numberPreference ( ) ) . toBe ( 4 ) ;
172+ expect ( booleanPreference ( ) ) . toBe ( false ) ;
173+ expect ( stringArrayPreference ( ) ) . toStrictEqual ( [ 'value2' ] ) ;
174+ expect ( numberArrayPreference ( ) ) . toStrictEqual ( [ 3 ] ) ;
175+ expect ( booleanArrayPreference ( ) ) . toStrictEqual ( [ false ] ) ;
163176 } ) ;
164177
165- it ( 'ignores store changes without a corresponding store ' , ( ) => {
178+ it ( 'ignores storage changes without a corresponding preference ' , ( ) => {
166179 const changes = { other : { newValue : true } } ;
167180
168181 emitter . emit ( 'onChanged' , changes , 'local' ) ;
0 commit comments