Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit 373bf6a

Browse files
update tests
1 parent db2d036 commit 373bf6a

File tree

4 files changed

+39
-41
lines changed

4 files changed

+39
-41
lines changed

lib/controllers/git-tab-header-controller.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export default class GitTabHeaderController extends React.Component {
3333

3434
componentDidMount() {
3535
this._isMounted = true;
36-
this.disposable.add(this.props.onDidChangeWorkDirs(this.updateWorkDirs));
36+
this.disposable.add(this.props.onDidChangeWorkDirs(this.resetWorkDirs));
3737
this.disposable.add(this.props.onDidUpdateRepo(this.updateCommitter));
3838
this.updateCommitter();
3939
}
@@ -45,7 +45,7 @@ export default class GitTabHeaderController extends React.Component {
4545
) {
4646
this.disposable.dispose();
4747
this.disposable = new CompositeDisposable();
48-
this.disposable.add(this.props.onDidChangeWorkDirs(this.updateWorkDirs));
48+
this.disposable.add(this.props.onDidChangeWorkDirs(this.resetWorkDirs));
4949
this.disposable.add(this.props.onDidUpdateRepo(this.updateCommitter));
5050
}
5151
if (prevProps.getCommitter !== this.props.getCommitter) {
@@ -68,9 +68,9 @@ export default class GitTabHeaderController extends React.Component {
6868
);
6969
}
7070

71-
updateWorkDirs = () => {
71+
resetWorkDirs = () => {
7272
this.setState((state, props) => ({
73-
currentWorkDirs: props.getCurrentWorkDirs() || [],
73+
currentWorkDirs: [],
7474
}));
7575
}
7676

lib/controllers/github-tab-header-controller.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ export default class GithubTabHeaderController extends React.Component {
2828
}
2929

3030
componentDidMount() {
31-
this.disposable = this.props.onDidChangeWorkDirs(this.updateWorkDirs);
31+
this.disposable = this.props.onDidChangeWorkDirs(this.resetWorkDirs);
3232
}
3333

3434
componentDidUpdate(prevProps) {
3535
if (prevProps.onDidChangeWorkDirs !== this.props.onDidChangeWorkDirs) {
3636
if (this.disposable) {
3737
this.disposable.dispose();
3838
}
39-
this.disposable = this.props.onDidChangeWorkDirs(this.updateWorkDirs);
39+
this.disposable = this.props.onDidChangeWorkDirs(this.resetWorkDirs);
4040
}
4141
}
4242

@@ -55,15 +55,13 @@ export default class GithubTabHeaderController extends React.Component {
5555
);
5656
}
5757

58-
updateWorkDirs = () => {
58+
resetWorkDirs = () => {
5959
this.setState((state, props) => ({
60-
currentWorkDirs: props.getCurrentWorkDirs() || [],
60+
currentWorkDirs: [],
6161
}));
6262
}
6363

6464
componentWillUnmount() {
65-
if (this.disposable) {
66-
this.disposable.dispose();
67-
}
65+
this.disposable.dispose();
6866
}
6967
}

test/controllers/git-tab-header-controller.test.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,22 @@ import {shallow} from 'enzyme';
33

44
import GitTabHeaderController from '../../lib/controllers/git-tab-header-controller';
55
import Author, {nullAuthor} from '../../lib/models/author';
6+
import {Disposable} from 'atom';
67

78
describe('GitTabHeaderController', function() {
9+
function *createWorkdirs(workdirs) {
10+
for (const workdir of workdirs) {
11+
yield workdir;
12+
}
13+
}
814

915
function buildApp(overrides) {
1016
const props = {
1117
getCommitter: () => nullAuthor,
12-
getCurrentWorkDirs: () => null,
18+
getCurrentWorkDirs: () => createWorkdirs([]),
19+
onDidUpdateRepo: () => new Disposable(),
20+
onDidChangeWorkDirs: () => new Disposable(),
21+
handleWorkDirSelect: () => null,
1322
...overrides,
1423
};
1524
return (
@@ -21,8 +30,8 @@ describe('GitTabHeaderController', function() {
2130

2231
it('get currentWorkDirs initializes workdirs state', function() {
2332
const paths = ['should be equal'];
24-
const wrapper = shallow(buildApp({getCurrentWorkDirs: () => paths}));
25-
assert.strictEqual(wrapper.state(['currentWorkDirs'])[0], paths[0]);
33+
const wrapper = shallow(buildApp({getCurrentWorkDirs: () => createWorkdirs(paths)}));
34+
assert.strictEqual(wrapper.state(['currentWorkDirs']).next().value, paths[0]);
2635
});
2736

2837
it('calls onDidChangeWorkDirs after mount', function() {
@@ -44,16 +53,6 @@ describe('GitTabHeaderController', function() {
4453
assert.isTrue(onDidChangeWorkDirs.calledOnce);
4554
});
4655

47-
it('does not call onDidUpdateRepo on update', function() {
48-
let onDidUpdateRepo = sinon.spy(() => ({dispose: () => null}));
49-
const wrapper = shallow(buildApp({onDidUpdateRepo}));
50-
wrapper.setProps({onDidUpdateRepo});
51-
assert.isTrue(onDidUpdateRepo.calledOnce);
52-
onDidUpdateRepo = sinon.spy(() => ({dispose: () => null}));
53-
wrapper.setProps({onDidUpdateRepo});
54-
assert.isTrue(onDidUpdateRepo.notCalled);
55-
});
56-
5756
it('calls onDidChangeWorkDirs on update to setup new listener', function() {
5857
let onDidChangeWorkDirs = sinon.spy(() => ({dispose: () => null}));
5958
const wrapper = shallow(buildApp({onDidChangeWorkDirs}));
@@ -91,9 +90,10 @@ describe('GitTabHeaderController', function() {
9190
});
9291

9392
it('updates workdirs', function() {
94-
const getCurrentWorkDirs = sinon.spy();
93+
let getCurrentWorkDirs = () => createWorkdirs([]);
94+
getCurrentWorkDirs = sinon.spy(getCurrentWorkDirs);
9595
const wrapper = shallow(buildApp({getCurrentWorkDirs}));
96-
wrapper.instance().updateWorkDirs();
96+
wrapper.instance().resetWorkDirs();
9797
assert.isTrue(getCurrentWorkDirs.calledTwice);
9898
});
9999

test/controllers/github-tab-header-controller.test.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,22 @@ import {shallow} from 'enzyme';
33

44
import GithubTabHeaderController from '../../lib/controllers/github-tab-header-controller';
55
import {nullAuthor} from '../../lib/models/author';
6+
import {Disposable} from 'atom';
67

78
describe('GithubTabHeaderController', function() {
9+
function *createWorkdirs(workdirs) {
10+
for (const workdir of workdirs) {
11+
yield workdir;
12+
}
13+
}
814

915
function buildApp(overrides) {
1016
const props = {
1117
user: nullAuthor,
12-
getCurrentWorkDirs: () => null,
18+
getCurrentWorkDirs: () => createWorkdirs([]),
19+
onDidUpdateRepo: () => new Disposable(),
20+
onDidChangeWorkDirs: () => new Disposable(),
21+
handleWorkDirSelect: () => null,
1322
...overrides,
1423
};
1524
return (
@@ -21,8 +30,8 @@ describe('GithubTabHeaderController', function() {
2130

2231
it('get currentWorkDirs initializes workdirs state', function() {
2332
const paths = ['should be equal'];
24-
const wrapper = shallow(buildApp({getCurrentWorkDirs: () => paths}));
25-
assert.strictEqual(wrapper.state(['currentWorkDirs'])[0], paths[0]);
33+
const wrapper = shallow(buildApp({getCurrentWorkDirs: () => createWorkdirs(paths)}));
34+
assert.strictEqual(wrapper.state(['currentWorkDirs']).next().value, paths[0]);
2635
});
2736

2837
it('calls onDidChangeWorkDirs after mount', function() {
@@ -56,20 +65,11 @@ describe('GithubTabHeaderController', function() {
5665
assert.isTrue(disposeSpy.calledOnce);
5766
});
5867

59-
it('disposes old listener and clears disposable on update', function() {
60-
const disposeSpy = sinon.spy();
61-
let onDidChangeWorkDirs = () => ({dispose: disposeSpy});
62-
const wrapper = shallow(buildApp({onDidChangeWorkDirs}));
63-
onDidChangeWorkDirs = null;
64-
wrapper.setProps({onDidChangeWorkDirs});
65-
assert.strictEqual(wrapper.instance().disposable, undefined);
66-
assert.isTrue(disposeSpy.calledOnce);
67-
});
68-
6968
it('updates workdirs', function() {
70-
const getCurrentWorkDirs = sinon.spy();
69+
let getCurrentWorkDirs = () => createWorkdirs([]);
70+
getCurrentWorkDirs = sinon.spy(getCurrentWorkDirs);
7171
const wrapper = shallow(buildApp({getCurrentWorkDirs}));
72-
wrapper.instance().updateWorkDirs();
72+
wrapper.instance().resetWorkDirs();
7373
assert.isTrue(getCurrentWorkDirs.calledTwice);
7474
});
7575

0 commit comments

Comments
 (0)