Headless CMS and Content Managment Hub
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

/*
* 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();
});
});