mirror of https://github.com/hashicorp/consul
69 lines
1.8 KiB
JavaScript
69 lines
1.8 KiB
JavaScript
|
import localStorage from 'consul-ui/utils/storage/local-storage';
|
||
|
import { module, test } from 'qunit';
|
||
|
|
||
|
module('Unit | Utility | storage/local-storage');
|
||
|
|
||
|
// Replace this with your real tests.
|
||
|
const mockStorage = function(obj, encode = val => val, decode = val => val) {
|
||
|
return localStorage('test', obj, encode, decode);
|
||
|
};
|
||
|
test('getValue returns an empty string if the value is null', function(assert) {
|
||
|
const expected = '""';
|
||
|
const storage = mockStorage({
|
||
|
getItem: function(path) {
|
||
|
return null;
|
||
|
},
|
||
|
});
|
||
|
const actual = storage.getValue('test');
|
||
|
assert.equal(actual, expected);
|
||
|
});
|
||
|
test('getValue uses the scheme in the path', function(assert) {
|
||
|
assert.expect(1);
|
||
|
const expected = 'test:test';
|
||
|
const storage = mockStorage({
|
||
|
getItem: function(actual) {
|
||
|
assert.equal(actual, expected);
|
||
|
return '';
|
||
|
},
|
||
|
});
|
||
|
storage.getValue('test');
|
||
|
});
|
||
|
test('setValue uses the scheme in the path', function(assert) {
|
||
|
assert.expect(1);
|
||
|
const expected = 'test:test';
|
||
|
const storage = mockStorage({
|
||
|
setItem: function(actual, value) {
|
||
|
assert.equal(actual, expected);
|
||
|
return '';
|
||
|
},
|
||
|
});
|
||
|
storage.setValue('test');
|
||
|
});
|
||
|
test('setValue calls removeItem if the value is null', function(assert) {
|
||
|
assert.expect(1);
|
||
|
const expected = 'test:test';
|
||
|
const storage = mockStorage({
|
||
|
removeItem: function(actual) {
|
||
|
assert.equal(actual, expected);
|
||
|
},
|
||
|
});
|
||
|
storage.setValue('test', null);
|
||
|
});
|
||
|
test('all returns an object of kvs under the correct prefix/scheme', function(assert) {
|
||
|
const storage = mockStorage({
|
||
|
'tester:a': 'a',
|
||
|
b: 'b',
|
||
|
'test:a': 'a',
|
||
|
'test:b': 'b',
|
||
|
getItem: function(path) {
|
||
|
return this[path];
|
||
|
},
|
||
|
});
|
||
|
const expected = {
|
||
|
a: 'a',
|
||
|
b: 'b',
|
||
|
};
|
||
|
const actual = storage.all();
|
||
|
assert.deepEqual(actual, expected);
|
||
|
});
|