forked from firefox-devtools/debugger
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFooter.spec.js
More file actions
70 lines (59 loc) · 1.79 KB
/
Copy pathFooter.spec.js
File metadata and controls
70 lines (59 loc) · 1.79 KB
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
/* eslint max-nested-callbacks: ["error", 7] */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
// @flow
import React from "react";
import { shallow } from "enzyme";
import SourceFooter from "../Footer";
import { createSourceObject } from "../../../utils/test-head";
import { setDocument } from "../../../utils/editor";
function createMockDocument(clear, position) {
const doc = {
getCursor: jest.fn(() => position)
};
return doc;
}
function generateDefaults(overrides) {
return {
editor: {
codeMirror: {
doc: {},
cursorActivity: jest.fn(),
on: jest.fn()
}
},
endPanelCollapsed: false,
selectedSourceWithContent: {
source: createSourceObject("foo"),
content: null
},
...overrides
};
}
function render(overrides = {}, position = { line: 0, column: 0 }) {
const clear = jest.fn();
const props = generateDefaults(overrides);
const doc = createMockDocument(clear, position);
setDocument(props.selectedSourceWithContent.source.id, doc);
// $FlowIgnore
const component = shallow(<SourceFooter.WrappedComponent {...props} />, {
lifecycleExperimental: true
});
return { component, props, clear, doc };
}
describe("SourceFooter Component", () => {
describe("default case", () => {
it("should render", () => {
const { component } = render();
expect(component).toMatchSnapshot();
});
});
describe("move cursor", () => {
it("should render new cursor position", () => {
const { component } = render();
component.setState({ cursorPosition: { line: 5, column: 10 } });
expect(component).toMatchSnapshot();
});
});
});