Skip to content

Commit 55eafef

Browse files
authored
Merge pull request #1354 from jasongrout/testing
Delete the clear_state commlessOnly argument
2 parents 6fc2cf4 + 115bfcc commit 55eafef

File tree

4 files changed

+17
-22
lines changed

4 files changed

+17
-22
lines changed

jupyter-js-widgets/src/manager-base.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -347,16 +347,11 @@ abstract class ManagerBase<T> {
347347

348348
/**
349349
* Close all widgets and empty the widget state.
350-
* @param commlessOnly should only commless widgets be removed
351-
* @return promise that resolves when the widget state is cleared.
350+
* @return Promise that resolves when the widget state is cleared.
352351
*/
353-
clear_state(commlessOnly: boolean): Promise<void> {
352+
clear_state(): Promise<void> {
354353
return utils.resolvePromisesDict(this._models).then((models) => {
355-
Object.keys(models).forEach((id) => {
356-
if (!commlessOnly || models[id].comm) {
357-
models[id].close();
358-
}
359-
});
354+
Object.keys(models).forEach(id => models[id].close());
360355
this._models = {};
361356
});
362357
};

jupyter-js-widgets/test/src/dummy-manager.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ class MockComm {
1515
this.comm_id = `mock-comm-id-${numComms}`;
1616
numComms += 1;
1717
}
18-
// Somehow the mock comm should trigger a close event?
1918
on_close(fn) {
2019
this._on_close = fn;
2120
};
@@ -24,7 +23,6 @@ class MockComm {
2423
if (this._on_close) {
2524
this._on_close();
2625
}
27-
console.error(this._on_close);
2826
};
2927
send() {};
3028
comm_id: string;

jupyter-js-widgets/test/src/manager_test.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -149,29 +149,31 @@ describe("ManagerBase", function() {
149149
});
150150

151151
describe('clear_state', function() {
152-
it('exists', function() {
153-
expect(this.managerBase.clear_state).to.not.be.undefined;
154-
});
155-
it('clears the model dictionary', async function() {
152+
it('clears the model dictionary and closes widgets', async function() {
156153
let spec = {
157154
model_name: 'IntSliderModel',
158155
model_module: 'jupyter-js-widgets',
159156
model_module_version: '3.0.0',
160157
};
161-
let mSpec1 = { ...spec, comm: new MockComm()};
162-
let mSpec2 = { ...spec, comm: new MockComm()};
158+
let comm1 = new MockComm();
159+
let comm2 = new MockComm();
160+
sinon.spy(comm1, 'close');
161+
sinon.spy(comm2, 'close');
162+
let mSpec1 = { ...spec, comm: comm1};
163+
let mSpec2 = { ...spec, comm: comm2};
163164
let manager = this.managerBase;
164165
let model1 = await manager.new_model(mSpec1);
165166
let model2 = await manager.new_model(mSpec2);
166-
let m1 = await manager.get_model(model1.id);
167167
expect(await manager.get_model(model1.id)).to.be.equal(model1);
168168
expect(await manager.get_model(model2.id)).to.be.equal(model2);
169169
await manager.clear_state();
170170
expect(manager.get_model(model1.id)).to.be.undefined;
171171
expect(manager.get_model(model2.id)).to.be.undefined;
172+
expect((comm1.close as any).calledOnce).to.be.true;
173+
expect((comm2.close as any).calledOnce).to.be.true;
174+
expect(model1.comm).to.be.undefined;
175+
expect(model2.comm).to.be.undefined;
172176
});
173-
it('clears only commless widgets if comlessOnly is true');
174-
it('closes the widgets');
175177
});
176178

177179
describe('get_state', function() {

jupyter-js-widgets/test/src/widget_date_test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ describe('DatePickerView', function() {
4848
});
4949

5050
it('initial date value', function() {
51-
const testDate = new Date(2017, 2, 25); // initial date value
51+
const testDate = new Date("2017-02-25");
5252
this.model.set('value', testDate);
5353
const options = { model: this.model };
5454
const view = new widgets.DatePickerView(options);
@@ -72,7 +72,7 @@ describe('DatePickerView', function() {
7272
view.render();
7373

7474
// Simulate setting the date in the datepicker
75-
const testDate = new Date(2015, 2, 22);
75+
const testDate = new Date("2015-02-22");
7676
const datepicker = getDatepicker(view.el);
7777
datepicker.valueAsDate = testDate;
7878
datepicker.dispatchEvent(new Event('change', {"bubbles":true}));
@@ -87,7 +87,7 @@ describe('DatePickerView', function() {
8787
const view = new widgets.DatePickerView(options);
8888
view.render();
8989

90-
const testDate = new Date(2015, 2, 22);
90+
const testDate = new Date("2015-02-22");
9191
this.model.set('value', testDate);
9292
const datepicker = getDatepicker(view.el);
9393
expect(datepicker.valueAsDate.getTime())

0 commit comments

Comments
 (0)