src/__tests__/store.js   A
last analyzed

Complexity

Total Complexity 7
Complexity/F 1

Size

Lines of Code 64
Function Count 7

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 7
eloc 50
mnd 0
bc 0
fnc 7
dl 0
loc 64
rs 10
bpm 0
cpm 1
noi 0
c 0
b 0
f 0
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