-
Notifications
You must be signed in to change notification settings - Fork 145
/
assessment-left-nav.test.tsx
94 lines (89 loc) · 3.51 KB
/
assessment-left-nav.test.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
import { AssessmentsProvider } from 'assessments/types/assessments-provider';
import { VisualizationType } from 'common/types/visualization-type';
import { shallow } from 'enzyme';
import * as React from 'react';
import { IMock, Mock, MockBehavior } from 'typemoq';
import {
ManualTestStatus,
ManualTestStatusData,
} from '../../../../../../common/types/manual-test-status';
import {
AssessmentLeftNav,
AssessmentLeftNavDeps,
AssessmentLeftNavLink,
AssessmentLeftNavProps,
} from '../../../../../../DetailsView/components/left-nav/assessment-left-nav';
import { LeftNavLinkBuilder } from '../../../../../../DetailsView/components/left-nav/left-nav-link-builder';
import { NavLinkHandler } from '../../../../../../DetailsView/components/left-nav/nav-link-handler';
import { DictionaryStringTo } from '../../../../../../types/common-types';
describe(AssessmentLeftNav.displayName, () => {
let linkStub: AssessmentLeftNavLink;
let deps: AssessmentLeftNavDeps;
let props: AssessmentLeftNavProps;
let leftNavLinkBuilderMock: IMock<LeftNavLinkBuilder>;
let navLinkHandlerMock: NavLinkHandler;
let assessmentsProviderStub: AssessmentsProvider;
let assessmentsDataStub: DictionaryStringTo<ManualTestStatusData>;
const expandedTest: VisualizationType = 1;
let onRightPanelContentSwitch: () => void;
let setNavComponentRef: (nav) => void;
beforeEach(() => {
onRightPanelContentSwitch = () => {};
setNavComponentRef = _ => {};
assessmentsDataStub = {};
assessmentsProviderStub = {} as AssessmentsProvider;
leftNavLinkBuilderMock = Mock.ofType(LeftNavLinkBuilder, MockBehavior.Strict);
navLinkHandlerMock = {
onOverviewClick: () => {},
onAssessmentTestClick: (x, y) => {},
} as NavLinkHandler;
linkStub = {
status: ManualTestStatus.UNKNOWN,
} as AssessmentLeftNavLink;
deps = {
leftNavLinkBuilder: leftNavLinkBuilderMock.object,
navLinkHandler: navLinkHandlerMock,
} as AssessmentLeftNavDeps;
props = {
deps,
selectedKey: 'some key',
leftNavLinkBuilder: leftNavLinkBuilderMock.object,
assessmentsProvider: assessmentsProviderStub,
assessmentsData: assessmentsDataStub,
featureFlagStoreData: {},
expandedTest,
onRightPanelContentSwitch,
setNavComponentRef,
};
leftNavLinkBuilderMock
.setup(lnlbm =>
lnlbm.buildOverviewLink(
deps,
navLinkHandlerMock.onOverviewClick,
assessmentsProviderStub,
assessmentsDataStub,
0,
onRightPanelContentSwitch,
),
)
.returns(() => linkStub);
});
it('renders with reflow feature flag enabled', () => {
leftNavLinkBuilderMock
.setup(lnlbm =>
lnlbm.buildAssessmentTestLinks(
deps,
assessmentsProviderStub,
assessmentsDataStub,
1,
expandedTest,
onRightPanelContentSwitch,
),
)
.returns(() => [linkStub]);
const actual = shallow(<AssessmentLeftNav {...props} />);
expect(actual.getElement()).toMatchSnapshot();
});
});