1
|
|
|
import { expect, describe, it } from '@jest/globals' |
2
|
|
|
import Store from '../store.js' |
3
|
|
|
|
4
|
|
|
const testStore = new Store() |
5
|
|
|
|
6
|
|
|
describe('Test the store', () => { |
7
|
|
|
it('It should add an item to the store', () => { |
8
|
|
|
testStore.addItem({ id: 42, value: 1 }) |
9
|
|
|
const result = testStore.search() |
10
|
|
|
expect(result.items).toEqual([{ id: 42, value: 1 }]) |
11
|
|
|
expect(result.count()).toEqual(1) |
12
|
|
|
expect(result.totalCount()).toEqual(1) |
13
|
|
|
expect(result.from).toEqual(0) |
14
|
|
|
expect(result.size).toEqual(10) |
15
|
|
|
expect(result.page).toEqual(0) |
16
|
|
|
}) |
17
|
|
|
|
18
|
|
|
it('It should add another item to the store', () => { |
19
|
|
|
testStore.addItem({ id: 43, value: 2 }) |
20
|
|
|
const result = testStore.search({ page: 0, size: 10 }) |
21
|
|
|
expect(result.items).toEqual([{ id: 42, value: 1 }, { id: 43, value: 2 }]) |
22
|
|
|
expect(result.count()).toEqual(2) |
23
|
|
|
expect(result.totalCount()).toEqual(2) |
24
|
|
|
expect(result.page).toEqual(0) |
25
|
|
|
}) |
26
|
|
|
|
27
|
|
|
it('It should get the first page with items with a limit of 1 per page', () => { |
28
|
|
|
const result = testStore.search({ page: 0, size: 1 }) |
29
|
|
|
expect(result.items).toEqual([{ id: 42, value: 1 }]) |
30
|
|
|
expect(result.count()).toEqual(1) |
31
|
|
|
expect(result.totalCount()).toEqual(2) |
32
|
|
|
expect(result.from).toEqual(0) |
33
|
|
|
expect(result.size).toEqual(1) |
34
|
|
|
expect(result.page).toEqual(0) |
35
|
|
|
}) |
36
|
|
|
|
37
|
|
|
it('It should get the second page with items with a limit of 1 per page', () => { |
38
|
|
|
const result = testStore.search({ page: 1, size: 1 }) |
39
|
|
|
expect(result.items).toEqual([{ id: 43, value: 2 }]) |
40
|
|
|
expect(result.count()).toEqual(1) |
41
|
|
|
expect(result.totalCount()).toEqual(2) |
42
|
|
|
expect(result.from).toEqual(1) |
43
|
|
|
expect(result.size).toEqual(1) |
44
|
|
|
expect(result.page).toEqual(1) |
45
|
|
|
}) |
46
|
|
|
|
47
|
|
|
it('It should update the item with id 43', () => { |
48
|
|
|
testStore.updateItem({ id: 43, value: 3 }) |
49
|
|
|
const result = testStore.search({ page: 0, size: 10 }) |
50
|
|
|
expect(result.items).toEqual([{ id: 42, value: 1 }, { id: 43, value: 3 }]) |
51
|
|
|
expect(result.count()).toEqual(2) |
52
|
|
|
expect(result.totalCount()).toEqual(2) |
53
|
|
|
expect(result.page).toEqual(0) |
54
|
|
|
}) |
55
|
|
|
|
56
|
|
|
it('It should remove item with id 43', () => { |
57
|
|
|
testStore.removeItem({ id: 43, value: 3 }) |
58
|
|
|
const result = testStore.search({ page: 0, size: 10 }) |
59
|
|
|
expect(result.valueOf()).toEqual([{ id: 42, value: 1 }]) |
60
|
|
|
expect(result.count()).toEqual(1) |
61
|
|
|
expect(result.totalCount()).toEqual(1) |
62
|
|
|
expect(result.page).toEqual(0) |
63
|
|
|
}) |
64
|
|
|
}) |
65
|
|
|
|