123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- /**
- * hostsFn.test.ts
- * @author: oldj
- * @homepage: https://oldj.net
- */
- import assert = require('assert')
- import { IHostsListObject } from '@root/common/data'
- import { findItemById, setOnStateOfItem } from '@root/common/hostsFn'
- describe('hostsFn test', function () {
- const makeAList = (): IHostsListObject[] => {
- return [
- { id: '1' },
- {
- id: '2', type: 'folder', folder_mode: 0, children: [
- { id: '2.1' },
- { id: '2.2' },
- { id: '2.3' },
- ],
- },
- {
- id: '3', type: 'folder', folder_mode: 1, children: [
- { id: '3.1' },
- { id: '3.2' },
- { id: '3.3' },
- {
- id: '3.4', type: 'folder', folder_mode: 2, children: [
- { id: '3.4.1' },
- { id: '3.4.2' },
- { id: '3.4.3' },
- ],
- },
- ],
- },
- {
- id: '4', type: 'folder', folder_mode: 2, children: [
- { id: '4.1' },
- { id: '4.2' },
- { id: '4.3' },
- {
- id: '4.4', type: 'folder', folder_mode: 1, children: [
- { id: '4.4.1' },
- { id: '4.4.2' },
- { id: '4.4.3' },
- ],
- },
- ],
- },
- { id: '5' },
- { id: '6' },
- ]
- }
- const getItem = (list: IHostsListObject[], id: string): any => findItemById(list, id) || {}
- it('updateOneItem top level test', () => {
- let list: IHostsListObject[] = [
- { id: '1' },
- ]
- list = setOnStateOfItem(list, '1', true, 0)
- assert(list[0].on)
- list = [
- { id: '1' },
- { id: '2' },
- ]
- list = setOnStateOfItem(list, '1', true, 0)
- assert(list[0].on)
- assert(!list[1].on)
- list = setOnStateOfItem(list, '2', true, 0)
- assert(list[0].on)
- assert(list[1].on)
- // 单选
- list = [
- { id: '1' },
- { id: '2', on: true },
- { id: '3', on: true },
- ]
- list = setOnStateOfItem(list, '1', true, 1)
- assert(list[0].on)
- assert(!list[1].on)
- assert(!list[2].on)
- // 多选
- list = [
- { id: '1' },
- { id: '2', on: true },
- { id: '3', on: true },
- ]
- list = setOnStateOfItem(list, '1', true, 2)
- assert(list[0].on)
- assert(list[1].on)
- assert(list[2].on)
- })
- it('updateOneItem folder test', () => {
- // default
- let list = makeAList()
- list = setOnStateOfItem(list, '1', true, 1)
- assert(list[0].on)
- assert(!list[1].on)
- assert(!list[2].on)
- assert(!list[3].on)
- list = setOnStateOfItem(list, '2', true, 1)
- assert(!list[0].on)
- assert(list[1].on)
- assert(!list[2].on)
- assert(!list[3].on)
- list = setOnStateOfItem(list, '2.1', true, 0)
- assert(getItem(list, '2.1').on)
- assert(!getItem(list, '2.2').on)
- assert(!getItem(list, '2.3').on)
- list = setOnStateOfItem(list, '2.2', true, 0)
- assert(getItem(list, '2.1').on)
- assert(getItem(list, '2.2').on)
- assert(!getItem(list, '2.3').on)
- list = setOnStateOfItem(list, '2.3', true, 1)
- assert(!getItem(list, '2.1').on)
- assert(!getItem(list, '2.2').on)
- assert(getItem(list, '2.3').on)
- list = setOnStateOfItem(list, '2.1', true, 1)
- assert(getItem(list, '2.1').on)
- assert(!getItem(list, '2.2').on)
- assert(!getItem(list, '2.3').on)
- list = setOnStateOfItem(list, '2.2', true, 2)
- assert(getItem(list, '2.1').on)
- assert(getItem(list, '2.2').on)
- assert(!getItem(list, '2.3').on)
- list = setOnStateOfItem(list, '3.1', true, 0)
- assert(getItem(list, '3.1').on)
- assert(!getItem(list, '3.2').on)
- assert(!getItem(list, '3.3').on)
- list = setOnStateOfItem(list, '3.2', true, 0)
- assert(!getItem(list, '3.1').on)
- assert(getItem(list, '3.2').on)
- assert(!getItem(list, '3.3').on)
- list = setOnStateOfItem(list, '3.3', true, 1)
- assert(!getItem(list, '3.1').on)
- assert(!getItem(list, '3.2').on)
- assert(getItem(list, '3.3').on)
- list = setOnStateOfItem(list, '3.1', true, 2)
- assert(getItem(list, '3.1').on)
- assert(!getItem(list, '3.2').on)
- assert(!getItem(list, '3.3').on)
- assert(!getItem(list, '3.4').on)
- list = setOnStateOfItem(list, '3.4.1', true, 0)
- assert(getItem(list, '3.4.1').on)
- assert(!getItem(list, '3.4.2').on)
- assert(!getItem(list, '3.4.3').on)
- list = setOnStateOfItem(list, '3.4.2', true, 0)
- assert(getItem(list, '3.4.1').on)
- assert(getItem(list, '3.4.2').on)
- assert(!getItem(list, '3.4.3').on)
- list = setOnStateOfItem(list, '3.4.3', true, 1)
- assert(getItem(list, '3.4.1').on)
- assert(getItem(list, '3.4.2').on)
- assert(getItem(list, '3.4.3').on)
- list = setOnStateOfItem(list, '3.4.3', false, 2)
- assert(getItem(list, '3.4.1').on)
- assert(getItem(list, '3.4.2').on)
- assert(!getItem(list, '3.4.3').on)
- list = setOnStateOfItem(list, '4.1', true, 0)
- assert(getItem(list, '4.1').on)
- assert(!getItem(list, '4.2').on)
- assert(!getItem(list, '4.3').on)
- list = setOnStateOfItem(list, '4.2', true, 1)
- assert(getItem(list, '4.1').on)
- assert(getItem(list, '4.2').on)
- assert(!getItem(list, '4.3').on)
- list = setOnStateOfItem(list, '4.3', true, 2)
- assert(getItem(list, '4.1').on)
- assert(getItem(list, '4.2').on)
- assert(getItem(list, '4.3').on)
- list = setOnStateOfItem(list, '4.4.1', true, 0)
- assert(getItem(list, '4.4.1').on)
- assert(!getItem(list, '4.4.2').on)
- assert(!getItem(list, '4.4.3').on)
- list = setOnStateOfItem(list, '4.4.2', true, 1)
- assert(!getItem(list, '4.4.1').on)
- assert(getItem(list, '4.4.2').on)
- assert(!getItem(list, '4.4.3').on)
- list = setOnStateOfItem(list, '4.4.3', true, 2)
- assert(!getItem(list, '4.4.1').on)
- assert(!getItem(list, '4.4.2').on)
- assert(getItem(list, '4.4.3').on)
- list = setOnStateOfItem(list, '4.4.3', false, 2)
- assert(!getItem(list, '4.4.1').on)
- assert(!getItem(list, '4.4.2').on)
- assert(!getItem(list, '4.4.3').on)
- })
- })
|