-
Notifications
You must be signed in to change notification settings - Fork 0
/
storage-utility.test.js
99 lines (83 loc) · 2.77 KB
/
storage-utility.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import StorageUtility from './storage-utility.js';
import { assert } from './test/assert-utils.js';
import { TestCase } from './test/test-case.js';
export class StorageUtilityTest extends TestCase {
/**
* @type {string} Prefixo randômico usado nos testes
*/
prefix;
/**
* @type {StorageUtility} instância usada para os testes, reinicializada
* entre os testes
*/
storage;
beforeAll() {
this.prefix = (Math.random() * 100000).toString(16);
}
beforeEach() {
sessionStorage.clear();
this.storage = new StorageUtility(this.prefix, 'session', true);
}
afterEach() {
sessionStorage.clear();
}
'gravou e leu valor no mesmo formato'() {
const key = 'meu-valor';
const number = 22;
this.storage.setItem(key, number);
const result = this.storage.getItem(key);
assert(
result === number, 'gravou e leu valor no mesmo formato'
);
}
'retornando o número correto de chaves'() {
const number = 22;
this.storage.setItem('meu-chave1', number);
assert(
this.storage.length === 1, 'retornando o número correto de chaves'
);
}
'total de chaves zerado após um comando clear'() {
this.storage.setItem('meu-chave1', 22);
this.storage.setItem('meu-chave2', 23);
this.storage.clear();
assert(
this.storage.length === 0,
'total de chaves zerado após um comando clear'
);
}
'recebeu null ao requisitar uma chave que não existe'() {
// Garantindo não existência da chave
sessionStorage.clear();
const result = this.storage.getItem('chave que não existe');
assert(
result === null, 'recebeu null ao requisitar uma chave que não existe'
);
}
'recebeu null ao tentar ler uma chave que apagou'() {
const key = 'meu-valor';
const number = '22';
this.storage.setItem(key, number);
const result = this.storage.getItem(key);
console.group('recebeu null ao tentar ler uma chave que apagou');
assert(
result === number, 'consegui gravar'
);
this.storage.removeItem(key);
assert(
this.storage.getItem(key) === null, 'recebeu null ao tentar ler uma chave que apagou'
);
console.groupEnd();
}
'sobrescrever valores funcionando'() {
const key = 'meu-valor';
const number = '22';
const newNumber = number + 1;
this.storage.setItem(key, number);
this.storage.setItem(key, newNumber);
const result = this.storage.getItem(key);
assert(
result === newNumber, 'sobrescrever valores funcionando'
);
}
}