1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
4 import React from 'react';
5 import { Tree, TreeItemStatus } from './tree';
6 import { mockProjectResource } from '../../models/test-utils';
7 import { ThemeProvider } from '@mui/material/styles';
8 import { CustomTheme } from '../../common/custom-theme';
10 describe("Tree component", () => {
12 it("should render ListItem", () => {
14 data: mockProjectResource(),
18 status: TreeItemStatus.LOADED
21 <ThemeProvider theme={CustomTheme}>
23 render={project => <div />}
24 toggleItemOpen={cy.stub()}
25 toggleItemActive={cy.stub()}
26 onContextMenu={cy.stub()}
30 cy.get('[data-cy=tree-li]').should('have.length', 1);
33 it("should render arrow", () => {
35 data: mockProjectResource(),
39 status: TreeItemStatus.LOADED,
42 <ThemeProvider theme={CustomTheme}>
44 render={project => <div />}
45 toggleItemOpen={cy.stub()}
46 toggleItemActive={cy.stub()}
47 onContextMenu={cy.stub()}
51 cy.get('i').should('have.length', 1);
54 it("should render checkbox", () => {
56 data: mockProjectResource(),
60 status: TreeItemStatus.LOADED
63 <ThemeProvider theme={CustomTheme}>
66 render={() => <div />}
67 toggleItemOpen={cy.stub()}
68 toggleItemActive={cy.stub()}
69 onContextMenu={cy.stub()}
73 cy.get('input[type=checkbox]').should('have.length', 1);
76 it("call onSelectionChanged with associated item", () => {
78 data: mockProjectResource(),
82 status: TreeItemStatus.LOADED,
84 const spy = cy.spy().as('spy');
85 const onSelectionChanged = (event, item) => spy(item);
87 <ThemeProvider theme={CustomTheme}>
90 render={() => <div />}
91 toggleItemOpen={cy.stub()}
92 toggleItemActive={cy.stub()}
93 onContextMenu={cy.stub()}
94 toggleItemSelection={onSelectionChanged}
98 cy.get('input[type=checkbox]').click();
99 cy.get('@spy').should('have.been.calledWith', project);