| /** |
| * 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 findFirstParentContainerId from 'src/dashboard/util/findFirstParentContainer'; |
| import { |
| DASHBOARD_GRID_ID, |
| DASHBOARD_ROOT_ID, |
| } from 'src/dashboard/util/constants'; |
| |
| describe('findFirstParentContainer', () => { |
| const mockGridLayout = { |
| DASHBOARD_VERSION_KEY: 'v2', |
| ROOT_ID: { |
| type: 'ROOT', |
| id: 'ROOT_ID', |
| children: ['GRID_ID'], |
| }, |
| GRID_ID: { |
| type: 'GRID', |
| id: 'GRID_ID', |
| children: ['ROW-Bk45URrlQ'], |
| }, |
| 'ROW-Bk45URrlQ': { |
| type: 'ROW', |
| id: 'ROW-Bk45URrlQ', |
| children: ['CHART-ryxVc8RHlX'], |
| }, |
| 'CHART-ryxVc8RHlX': { |
| type: 'CHART', |
| id: 'CHART-ryxVc8RHlX', |
| children: [], |
| }, |
| HEADER_ID: { |
| id: 'HEADER_ID', |
| type: 'HEADER', |
| }, |
| }; |
| const mockTabsLayout = { |
| 'CHART-S1gilYABe7': { |
| children: [], |
| id: 'CHART-S1gilYABe7', |
| type: 'CHART', |
| }, |
| 'CHART-SJli5K0HlQ': { |
| children: [], |
| id: 'CHART-SJli5K0HlQ', |
| type: 'CHART', |
| }, |
| GRID_ID: { |
| children: [], |
| id: 'GRID_ID', |
| type: 'GRID', |
| }, |
| HEADER_ID: { |
| id: 'HEADER_ID', |
| type: 'HEADER', |
| }, |
| ROOT_ID: { |
| children: ['TABS-SkgJ5t0Bem'], |
| id: 'ROOT_ID', |
| type: 'ROOT', |
| }, |
| 'ROW-S1B8-JLgX': { |
| children: ['CHART-SJli5K0HlQ'], |
| id: 'ROW-S1B8-JLgX', |
| type: 'ROW', |
| }, |
| 'ROW-S1bUb1Ilm': { |
| children: ['CHART-S1gilYABe7'], |
| id: 'ROW-S1bUb1Ilm', |
| type: 'ROW', |
| }, |
| 'TABS-ByeLSWyLe7': { |
| children: ['TAB-BJbLSZ1UeQ'], |
| id: 'TABS-ByeLSWyLe7', |
| type: 'TABS', |
| }, |
| 'TABS-SkgJ5t0Bem': { |
| children: ['TAB-HkWJcFCHxQ', 'TAB-ByDBbkLlQ'], |
| id: 'TABS-SkgJ5t0Bem', |
| meta: {}, |
| type: 'TABS', |
| }, |
| 'TAB-BJbLSZ1UeQ': { |
| children: ['ROW-S1bUb1Ilm'], |
| id: 'TAB-BJbLSZ1UeQ', |
| type: 'TAB', |
| }, |
| 'TAB-ByDBbkLlQ': { |
| children: ['ROW-S1B8-JLgX'], |
| id: 'TAB-ByDBbkLlQ', |
| type: 'TAB', |
| }, |
| 'TAB-HkWJcFCHxQ': { |
| children: ['TABS-ByeLSWyLe7'], |
| id: 'TAB-HkWJcFCHxQ', |
| type: 'TAB', |
| }, |
| DASHBOARD_VERSION_KEY: 'v2', |
| }; |
| |
| it('should return grid root', () => { |
| expect(findFirstParentContainerId(mockGridLayout)).toBe(DASHBOARD_GRID_ID); |
| }); |
| |
| it('should return first tab', () => { |
| const tabsId = mockTabsLayout[DASHBOARD_ROOT_ID].children[0]; |
| const firstTabId = mockTabsLayout[tabsId].children[0]; |
| expect(findFirstParentContainerId(mockTabsLayout)).toBe(firstTabId); |
| }); |
| }); |