Skip to content

Commit 9accbb2

Browse files
authored
Merge pull request #866 from mgwojciech/dev
Few more unit tests
2 parents ff495b1 + 2fd07a9 commit 9accbb2

File tree

7 files changed

+356
-67
lines changed

7 files changed

+356
-67
lines changed

package-lock.json

Lines changed: 113 additions & 53 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@
5050
"@microsoft/sp-tslint-rules": "1.12.0",
5151
"@microsoft/sp-webpart-workbench": "1.12.0",
5252
"@types/chart.js": "2.7.40",
53-
"@types/enzyme": "2.8.7",
53+
"@types/enzyme": "^2.8.12",
54+
"@types/es6-promise": "0.0.33",
5455
"@types/jest": "25.2.3",
5556
"@types/lodash": "4.14.149",
5657
"@types/react": "16.9.36",
@@ -64,7 +65,7 @@
6465
"amd-loader": "0.0.8",
6566
"chai": "^4.3.4",
6667
"codecov": "3.6.5",
67-
"enzyme": "^2.9.1",
68+
"enzyme": "^3.11.0",
6869
"enzyme-adapter-react-16": "^1.15.6",
6970
"gulp": "4.0.2",
7071
"husky": "5.2.0",
@@ -121,8 +122,32 @@
121122
"moduleNameMapper": {
122123
"@ms/sp-telemetry": "identity-obj-proxy",
123124
"@microsoft/sp-webpart-base": "identity-obj-proxy",
125+
"@microsoft/sp-core-library": "identity-obj-proxy",
124126
"@microsoft/sp-application-base": "identity-obj-proxy",
125-
"^resx-strings/en-us.json": "<rootDir>/node_modules/@microsoft/sp-core-library/lib/resx-strings/en-us.json",
127+
"office-ui-fabric-react/lib/FocusZone": "identity-obj-proxy",
128+
"office-ui-fabric-react/lib/List": "identity-obj-proxy",
129+
"office-ui-fabric-react/lib/Spinner": "identity-obj-proxy",
130+
"office-ui-fabric-react/lib/Image": "identity-obj-proxy",
131+
"office-ui-fabric-react/lib/Button": "identity-obj-proxy",
132+
"office-ui-fabric-react/lib/components/Button": "identity-obj-proxy",
133+
"office-ui-fabric-react/lib/Selection": "identity-obj-proxy",
134+
"office-ui-fabric-react/lib/Icon": "identity-obj-proxy",
135+
"office-ui-fabric-react/lib/Styling": "identity-obj-proxy",
136+
"office-ui-fabric-react/lib/Check": "identity-obj-proxy",
137+
"office-ui-fabric-react/lib/DetailsList": "identity-obj-proxy",
138+
"office-ui-fabric-react/lib/CommandBar": "identity-obj-proxy",
139+
"office-ui-fabric-react/lib/ContextualMenu": "identity-obj-proxy",
140+
"office-ui-fabric-react/lib/ScrollablePane": "identity-obj-proxy",
141+
"office-ui-fabric-react/lib/Breadcrumb": "identity-obj-proxy",
142+
"office-ui-fabric-react/lib/Link": "identity-obj-proxy",
143+
"office-ui-fabric-react/lib/Dialog": "identity-obj-proxy",
144+
"office-ui-fabric-react/lib/common/DirectionalHint": "identity-obj-proxy",
145+
"office-ui-fabric-react/lib/Persona": "identity-obj-proxy",
146+
"office-ui-fabric-react/lib/HoverCard": "identity-obj-proxy",
147+
"office-ui-fabric-react/lib/components/Icon": "identity-obj-proxy",
148+
"@pnp/sp": "identity-obj-proxy",
149+
"'@pnp/sp/fields": "identity-obj-proxy",
150+
"ControlStrings": "identity-obj-proxy",
126151
"\\.(css|scss)$": "identity-obj-proxy"
127152
}
128153
}
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
///<reference types="jest" />
2+
3+
import * as React from "react";
4+
import { mount, configure } from "enzyme";
5+
import * as Adapter from 'enzyme-adapter-react-16';
6+
import { DocumentLibraryBrowser } from "../../../src/controls/filePicker/controls/DocumentLibraryBrowser/DocumentLibraryBrowser";
7+
import { MockFileBrowserService } from "../../mock/services/MockFileBrowserService";
8+
import { assert } from "chai";
9+
import { ILibrary } from "../../../src/services/FileBrowserService.types";
10+
11+
configure({ adapter: new Adapter() });
12+
13+
describe("<DocumentLibraryBrowser />", ()=>{
14+
test("should load initial data", async ()=>{
15+
let browserService = new MockFileBrowserService();
16+
browserService.getSiteMediaLibrariesResult = [{
17+
title: "Test library title",
18+
absoluteUrl: "https://test.sharepoint.com/sites/test-site/TestLibrary",
19+
serverRelativeUrl: "/sites/test-site/TestLibrary",
20+
webRelativeUrl: "/sites/test-site/TestLibrary",
21+
iconPath: "/sites/test-site/Assets/icon.png"
22+
}]
23+
let documentLibraryBrowser = mount(<DocumentLibraryBrowser
24+
fileBrowserService={browserService as any}
25+
onOpenLibrary={()=>{
26+
27+
}}
28+
/>);
29+
assert.equal(documentLibraryBrowser.getDOMNode().tagName, "SPINNER");
30+
31+
await documentLibraryBrowser.instance().componentDidMount();
32+
documentLibraryBrowser.update();
33+
34+
assert.equal(documentLibraryBrowser.getDOMNode().tagName, "DIV");
35+
assert.deepEqual(documentLibraryBrowser.instance().state.lists,browserService.getSiteMediaLibrariesResult);
36+
});
37+
test("should render library title", async ()=>{
38+
let browserService = new MockFileBrowserService();
39+
browserService.getSiteMediaLibrariesResult = [{
40+
title: "Test library title",
41+
absoluteUrl: "https://test.sharepoint.com/sites/test-site/TestLibrary",
42+
serverRelativeUrl: "/sites/test-site/TestLibrary",
43+
webRelativeUrl: "/sites/test-site/TestLibrary",
44+
iconPath: "/sites/test-site/Assets/icon.png"
45+
}]
46+
let documentLibraryBrowser = mount(<DocumentLibraryBrowser
47+
fileBrowserService={browserService as any}
48+
onOpenLibrary={()=>{
49+
50+
}}
51+
/>);
52+
//@ts-ignore
53+
let libraryTitle = documentLibraryBrowser.instance()._onRenderLibraryTile(browserService.getSiteMediaLibrariesResult[0],0);
54+
let iconControl = libraryTitle.props.children.props.children.props.children[0];
55+
let buttonControl = libraryTitle.props.children.props.children.props.children[1];
56+
assert.equal(iconControl.type,"Image");
57+
assert.equal(buttonControl.type,"DefaultButton");
58+
});
59+
test("should call onOpenLibrary", async ()=>{
60+
let asserted = false;
61+
let browserService = new MockFileBrowserService();
62+
browserService.getSiteMediaLibrariesResult = [{
63+
title: "Test library title",
64+
absoluteUrl: "https://test.sharepoint.com/sites/test-site/TestLibrary",
65+
serverRelativeUrl: "/sites/test-site/TestLibrary",
66+
webRelativeUrl: "/sites/test-site/TestLibrary",
67+
iconPath: "/sites/test-site/Assets/icon.png"
68+
}]
69+
let documentLibraryBrowser = mount(<DocumentLibraryBrowser
70+
fileBrowserService={browserService as any}
71+
onOpenLibrary={(selectedLibrary: ILibrary)=>{
72+
asserted = true;
73+
assert.deepEqual(selectedLibrary,browserService.getSiteMediaLibrariesResult[0]);
74+
}}
75+
/>);
76+
//@ts-ignore
77+
documentLibraryBrowser.instance()._handleOpenLibrary(browserService.getSiteMediaLibrariesResult[0]);
78+
assert.isTrue(asserted);
79+
});
80+
test("should _getItemCountForPage 0", async ()=>{
81+
let browserService = new MockFileBrowserService();
82+
let documentLibraryBrowser = mount(<DocumentLibraryBrowser
83+
fileBrowserService={browserService as any}
84+
onOpenLibrary={(selectedLibrary: ILibrary)=>{
85+
}}
86+
/>);
87+
//@ts-ignore
88+
documentLibraryBrowser.instance()._columnsCount = 4;
89+
//@ts-ignore
90+
assert.equal(documentLibraryBrowser.instance()._getItemCountForPage(0,{
91+
width: 1000
92+
}),12);
93+
});
94+
});

0 commit comments

Comments
 (0)