| Total Complexity | 2 |
| Complexity/F | 1 |
| Lines of Code | 37 |
| Function Count | 2 |
| Duplicated Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
| 1 | import {default as json} from './json/add_option_form.json'; |
||
| 2 | import {addOptionToState} from '../src/helpers/option.js'; |
||
| 3 | import {buildAddOptionForm} from '../src/add-option-form.js'; |
||
| 4 | |||
| 5 | import {dummyPoll} from './dummy.js'; |
||
| 6 | |||
| 7 | test('build add option form', () => { |
||
| 8 | const dialog = buildAddOptionForm({ |
||
| 9 | topic: 'Who is the most handsome AI?', |
||
| 10 | }); |
||
| 11 | expect(dialog).toEqual(json); |
||
| 12 | }); |
||
| 13 | |||
| 14 | test('add a new option to state', () => { |
||
| 15 | // clone object |
||
| 16 | const state = structuredClone(dummyPoll); |
||
| 17 | addOptionToState('Unspecific Worm', state); |
||
| 18 | expect(state.choices).toEqual([ |
||
| 19 | 'Feather Duster Worm', |
||
| 20 | 'Christmas Tree Worm', |
||
| 21 | 'Coco Worm', |
||
| 22 | 'Bearded Fireworm', |
||
| 23 | 'Giant Tube Worm', |
||
| 24 | 'Unspecific Worm', |
||
| 25 | ]); |
||
| 26 | expect(state.choiceCreator).toStrictEqual({'5': ''}); |
||
| 27 | addOptionToState('Another Unspecific Worm', state, 'Dyas'); |
||
| 28 | expect(state.choices).toEqual([ |
||
| 29 | 'Feather Duster Worm', |
||
| 30 | 'Christmas Tree Worm', |
||
| 31 | 'Coco Worm', |
||
| 32 | 'Bearded Fireworm', |
||
| 33 | 'Giant Tube Worm', |
||
| 34 | 'Unspecific Worm', |
||
| 35 | 'Another Unspecific Worm', |
||
| 36 | ]); |
||
| 37 | expect(state.choiceCreator).toStrictEqual({'5': '', '6': 'Dyas'}); |
||
| 38 | }); |
||
| 40 |