| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * 'License'); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| import findTabIndexByComponentId from 'src/dashboard/util/findTabIndexByComponentId'; |
| |
| describe('findTabIndexByComponentId', () => { |
| const topLevelTabsComponent = { |
| children: ['TAB-0g-5l347I2', 'TAB-qrwN_9VB5'], |
| id: 'TABS-MNQQSW-kyd', |
| meta: {}, |
| parents: ['ROOT_ID'], |
| type: 'TABS', |
| }; |
| const rowLevelTabsComponent = { |
| children: [ |
| 'TAB-TwyUUGp2Bg', |
| 'TAB-Zl1BQAUvN', |
| 'TAB-P0DllxzTU', |
| 'TAB---e53RNei', |
| ], |
| id: 'TABS-Oduxop1L7I', |
| meta: {}, |
| parents: ['ROOT_ID', 'TABS-MNQQSW-kyd', 'TAB-qrwN_9VB5'], |
| type: 'TABS', |
| }; |
| const goodPathToChild = [ |
| 'ROOT_ID', |
| 'TABS-MNQQSW-kyd', |
| 'TAB-qrwN_9VB5', |
| 'TABS-Oduxop1L7I', |
| 'TAB-P0DllxzTU', |
| 'ROW-JXhrFnVP8', |
| 'CHART-dUIVg-ENq6', |
| ]; |
| const badPath = ['ROOT_ID', 'TABS-MNQQSW-kyd', 'TAB-ABC', 'TABS-Oduxop1L7I']; |
| |
| it('should return -1 if no directPathToChild', () => { |
| expect( |
| findTabIndexByComponentId({ |
| currentComponent: topLevelTabsComponent, |
| directPathToChild: [], |
| }), |
| ).toBe(-1); |
| }); |
| |
| it('should return -1 if not found tab id', () => { |
| expect( |
| findTabIndexByComponentId({ |
| currentComponent: topLevelTabsComponent, |
| directPathToChild: badPath, |
| }), |
| ).toBe(-1); |
| }); |
| |
| it('should return children index if matched an id in the path', () => { |
| expect( |
| findTabIndexByComponentId({ |
| currentComponent: topLevelTabsComponent, |
| directPathToChild: goodPathToChild, |
| }), |
| ).toBe(1); |
| |
| expect( |
| findTabIndexByComponentId({ |
| currentComponent: rowLevelTabsComponent, |
| directPathToChild: goodPathToChild, |
| }), |
| ).toBe(2); |
| }); |
| }); |