mirror of https://github.com/Squidex/squidex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
3.2 KiB
111 lines
3.2 KiB
/*
|
|
* Squidex Headless CMS
|
|
*
|
|
* @license
|
|
* Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved.
|
|
*/
|
|
|
|
import { LocalStoreService, LocalStoreServiceFactory } from './local-store.service';
|
|
|
|
describe('LocalStore', () => {
|
|
it('should instantiate from factory', () => {
|
|
const localStoreService = LocalStoreServiceFactory();
|
|
|
|
expect(localStoreService).toBeDefined();
|
|
});
|
|
|
|
it('should instantiate', () => {
|
|
const localStoreService = new LocalStoreService();
|
|
|
|
expect(localStoreService).toBeDefined();
|
|
});
|
|
|
|
it('should call local store for set function', () => {
|
|
const localStoreService = new LocalStoreService();
|
|
|
|
let passedKey = '', passedVal = '';
|
|
|
|
localStoreService.configureStore({
|
|
setItem: (k: string, v: string) => {
|
|
passedKey = k;
|
|
passedVal = v;
|
|
}
|
|
});
|
|
|
|
localStoreService.set('mykey', 'myval');
|
|
|
|
expect(passedKey).toBe('mykey');
|
|
expect(passedVal).toBe('myval');
|
|
});
|
|
|
|
it('should call local store for get function', () => {
|
|
const localStoreService = new LocalStoreService();
|
|
|
|
let passedKey = '';
|
|
|
|
localStoreService.configureStore({
|
|
getItem: (key: string): string => {
|
|
passedKey = key;
|
|
|
|
return 'myval';
|
|
}
|
|
});
|
|
|
|
const returnedVal = localStoreService.get('mykey');
|
|
|
|
expect(passedKey).toBe('mykey');
|
|
expect(returnedVal).toBe('myval');
|
|
});
|
|
|
|
it('should set and get from fallback value when local store failed', () => {
|
|
const localStoreService = new LocalStoreService();
|
|
|
|
localStoreService.configureStore({
|
|
setItem: (k: string, v: string) => {
|
|
throw 'Not supported';
|
|
},
|
|
getItem: (k: string) => {
|
|
throw 'Not supported';
|
|
}
|
|
});
|
|
|
|
localStoreService.set('mykey', 'myval');
|
|
|
|
expect(localStoreService.get('mykey')).toBe('myval');
|
|
});
|
|
|
|
it('should get boolean from local store', () => {
|
|
const localStoreService = new LocalStoreService();
|
|
|
|
localStoreService.setBoolean('key1', true);
|
|
localStoreService.setBoolean('key2', false);
|
|
|
|
expect(localStoreService.getBoolean('key1')).toBe(true);
|
|
expect(localStoreService.getBoolean('key2')).toBe(false);
|
|
|
|
expect(localStoreService.getBoolean('not_set')).toBe(false);
|
|
});
|
|
|
|
it('should get int from local store', () => {
|
|
const localStoreService = new LocalStoreService();
|
|
|
|
localStoreService.set('key1', 'abc');
|
|
localStoreService.setInt('key2', 2);
|
|
localStoreService.setInt('key3', 0);
|
|
|
|
expect(localStoreService.getInt('key1', 13)).toBe(13);
|
|
expect(localStoreService.getInt('key2', 13)).toBe(2);
|
|
expect(localStoreService.getInt('key3', 13)).toBe(0);
|
|
|
|
expect(localStoreService.getInt('not_set', 13)).toBe(13);
|
|
});
|
|
|
|
it('should remove item from local store', () => {
|
|
const localStoreService = new LocalStoreService();
|
|
|
|
localStoreService.set('key1', 'abc');
|
|
localStoreService.remove('key1');
|
|
|
|
expect(localStoreService.get('key1')).toBeNull();
|
|
});
|
|
});
|
|
|