Completed
Push — master ( 736128...1360ae )
by Mathieu
22s queued 11s
created

client/src/components/inputs/UsersInput.spec.js   A

Complexity

Total Complexity 3
Complexity/F 1

Size

Lines of Code 56
Function Count 3

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 35
mnd 0
bc 0
fnc 3
dl 0
loc 56
rs 10
bpm 0
cpm 1
noi 0
c 0
b 0
f 0
1
import UsersInput from './UsersInput.svelte';
2
import {screen, render, fireEvent} from '@testing-library/svelte';
3
4
it('renders the users input select with the selected user', () => {
5
  const userId = '8a1dd502-c974-447e-9be3-a18e7abfebe3';
6
  const users = [
7
    {
8
      id: '8a1dd502-c974-447e-9be3-a18e7abfebe3',
9
      firstName: 'Nicolas',
10
      lastName: 'Dievart'
11
    },
12
    {
13
      id: '14900cf1-49b1-4410-81d4-0c31086c7e6d',
14
      firstName: 'Mathieu',
15
      lastName: 'Marchois'
16
    }
17
  ];
18
  render(UsersInput, {userId, users});
19
20
  const select = screen.getByRole('combobox');
21
  expect(select.value).toBe('8a1dd502-c974-447e-9be3-a18e7abfebe3');
22
  const options = screen.getAllByRole('option');
23
  const optionNames = options.map((option) => option.textContent.trim());
24
  expect(optionNames).toMatchInlineSnapshot(`
25
  Array [
26
    "-- Choisir un salarié --",
27
    "Nicolas Dievart",
28
    "Mathieu Marchois",
29
  ]
30
`);
31
});
32
33
it('renders the users input select, on change other user selected', () => {
34
  const userId = '8a1dd502-c974-447e-9be3-a18e7abfebe3';
35
  const users = [
36
    {
37
      id: '8a1dd502-c974-447e-9be3-a18e7abfebe3',
38
      firstName: 'Nicolas',
39
      lastName: 'Dievart'
40
    },
41
    {
42
      id: '14900cf1-49b1-4410-81d4-0c31086c7e6d',
43
      firstName: 'Mathieu',
44
      lastName: 'Marchois'
45
    }
46
  ];
47
  render(UsersInput, {userId, users});
48
  const select = screen.getByRole('combobox');
49
50
  // Switch to "mathieu"
51
  fireEvent.change(select, {
52
    target: {value: '14900cf1-49b1-4410-81d4-0c31086c7e6d'}
53
  });
54
55
  expect(select.value).toBe('14900cf1-49b1-4410-81d4-0c31086c7e6d');
56
});
57