|
@@ -1,7 +1,6 @@
|
|
|
// Copyright (c) Jupyter Development Team.
|
|
|
-// Distributed under the terms of the Modified BSD License.
|
|
|
|
|
|
-import { expect } from 'chai';
|
|
|
+import 'jest';
|
|
|
|
|
|
import { toArray } from '@lumino/algorithm';
|
|
|
|
|
@@ -12,20 +11,20 @@ describe('@jupyterlab/observables', () => {
|
|
|
describe('#constructor()', () => {
|
|
|
it('should accept no arguments', () => {
|
|
|
const value = new ObservableList<number>();
|
|
|
- expect(value instanceof ObservableList).to.equal(true);
|
|
|
+ expect(value instanceof ObservableList).toBe(true);
|
|
|
});
|
|
|
|
|
|
it('should accept an array argument', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
- expect(value instanceof ObservableList).to.equal(true);
|
|
|
- expect(toArray(value)).to.deep.equal([1, 2, 3]);
|
|
|
+ expect(value instanceof ObservableList).toBe(true);
|
|
|
+ expect(toArray(value)).toEqual([1, 2, 3]);
|
|
|
});
|
|
|
});
|
|
|
|
|
|
describe('#type', () => {
|
|
|
it('should return `List`', () => {
|
|
|
const value = new ObservableList<number>();
|
|
|
- expect(value.type).to.equal('List');
|
|
|
+ expect(value.type).toBe('List');
|
|
|
});
|
|
|
});
|
|
|
|
|
@@ -37,32 +36,32 @@ describe('@jupyterlab/observables', () => {
|
|
|
called = true;
|
|
|
});
|
|
|
value.insert(0, 1);
|
|
|
- expect(called).to.equal(true);
|
|
|
+ expect(called).toBe(true);
|
|
|
});
|
|
|
|
|
|
it('should have value changed args', () => {
|
|
|
let called = false;
|
|
|
const value = new ObservableList<number>();
|
|
|
value.changed.connect((sender, args) => {
|
|
|
- expect(sender).to.equal(value);
|
|
|
- expect(args.type).to.equal('add');
|
|
|
- expect(args.newIndex).to.equal(0);
|
|
|
- expect(args.oldIndex).to.equal(-1);
|
|
|
- expect(args.newValues[0]).to.equal(1);
|
|
|
- expect(args.oldValues.length).to.equal(0);
|
|
|
+ expect(sender).toBe(value);
|
|
|
+ expect(args.type).toBe('add');
|
|
|
+ expect(args.newIndex).toBe(0);
|
|
|
+ expect(args.oldIndex).toBe(-1);
|
|
|
+ expect(args.newValues[0]).toBe(1);
|
|
|
+ expect(args.oldValues.length).toBe(0);
|
|
|
called = true;
|
|
|
});
|
|
|
value.push(1);
|
|
|
- expect(called).to.equal(true);
|
|
|
+ expect(called).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
|
|
|
describe('#isDisposed', () => {
|
|
|
it('should test whether the list is disposed', () => {
|
|
|
const value = new ObservableList<number>();
|
|
|
- expect(value.isDisposed).to.equal(false);
|
|
|
+ expect(value.isDisposed).toBe(false);
|
|
|
value.dispose();
|
|
|
- expect(value.isDisposed).to.equal(true);
|
|
|
+ expect(value.isDisposed).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
|
|
@@ -70,14 +69,14 @@ describe('@jupyterlab/observables', () => {
|
|
|
it('should dispose of the resources held by the list', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
value.dispose();
|
|
|
- expect(value.isDisposed).to.equal(true);
|
|
|
+ expect(value.isDisposed).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
|
|
|
describe('#get()', () => {
|
|
|
it('should get the value at the specified index', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
- expect(value.get(1)).to.equal(2);
|
|
|
+ expect(value.get(1)).toBe(2);
|
|
|
});
|
|
|
});
|
|
|
|
|
@@ -85,23 +84,23 @@ describe('@jupyterlab/observables', () => {
|
|
|
it('should set the item at a specific index', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
value.set(1, 4);
|
|
|
- expect(toArray(value)).to.deep.equal([1, 4, 3]);
|
|
|
+ expect(toArray(value)).toEqual([1, 4, 3]);
|
|
|
});
|
|
|
|
|
|
it('should trigger a changed signal', () => {
|
|
|
let called = false;
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
value.changed.connect((sender, args) => {
|
|
|
- expect(sender).to.equal(value);
|
|
|
- expect(args.type).to.equal('set');
|
|
|
- expect(args.newIndex).to.equal(1);
|
|
|
- expect(args.oldIndex).to.equal(1);
|
|
|
- expect(args.oldValues[0]).to.equal(2);
|
|
|
- expect(args.newValues[0]).to.equal(4);
|
|
|
+ expect(sender).toBe(value);
|
|
|
+ expect(args.type).toBe('set');
|
|
|
+ expect(args.newIndex).toBe(1);
|
|
|
+ expect(args.oldIndex).toBe(1);
|
|
|
+ expect(args.oldValues[0]).toBe(2);
|
|
|
+ expect(args.newValues[0]).toBe(4);
|
|
|
called = true;
|
|
|
});
|
|
|
value.set(1, 4);
|
|
|
- expect(called).to.equal(true);
|
|
|
+ expect(called).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
|
|
@@ -109,28 +108,28 @@ describe('@jupyterlab/observables', () => {
|
|
|
it('should add an item to the end of the list', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
value.push(4);
|
|
|
- expect(toArray(value)).to.deep.equal([1, 2, 3, 4]);
|
|
|
+ expect(toArray(value)).toEqual([1, 2, 3, 4]);
|
|
|
});
|
|
|
|
|
|
it('should return the new length of the list', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
- expect(value.push(4)).to.equal(4);
|
|
|
+ expect(value.push(4)).toBe(4);
|
|
|
});
|
|
|
|
|
|
it('should trigger a changed signal', () => {
|
|
|
let called = false;
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
value.changed.connect((sender, args) => {
|
|
|
- expect(sender).to.equal(value);
|
|
|
- expect(args.type).to.equal('add');
|
|
|
- expect(args.newIndex).to.equal(3);
|
|
|
- expect(args.oldIndex).to.equal(-1);
|
|
|
- expect(args.oldValues.length).to.equal(0);
|
|
|
- expect(args.newValues[0]).to.equal(4);
|
|
|
+ expect(sender).toBe(value);
|
|
|
+ expect(args.type).toBe('add');
|
|
|
+ expect(args.newIndex).toBe(3);
|
|
|
+ expect(args.oldIndex).toBe(-1);
|
|
|
+ expect(args.oldValues.length).toBe(0);
|
|
|
+ expect(args.newValues[0]).toBe(4);
|
|
|
called = true;
|
|
|
});
|
|
|
value.push(4);
|
|
|
- expect(called).to.equal(true);
|
|
|
+ expect(called).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
|
|
@@ -138,23 +137,23 @@ describe('@jupyterlab/observables', () => {
|
|
|
it('should insert an item into the list at a specific index', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
value.insert(1, 4);
|
|
|
- expect(toArray(value)).to.deep.equal([1, 4, 2, 3]);
|
|
|
+ expect(toArray(value)).toEqual([1, 4, 2, 3]);
|
|
|
});
|
|
|
|
|
|
it('should trigger a changed signal', () => {
|
|
|
let called = false;
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
value.changed.connect((sender, args) => {
|
|
|
- expect(sender).to.equal(value);
|
|
|
- expect(args.type).to.equal('add');
|
|
|
- expect(args.newIndex).to.equal(1);
|
|
|
- expect(args.oldIndex).to.equal(-1);
|
|
|
- expect(args.oldValues.length).to.equal(0);
|
|
|
- expect(args.newValues[0]).to.equal(4);
|
|
|
+ expect(sender).toBe(value);
|
|
|
+ expect(args.type).toBe('add');
|
|
|
+ expect(args.newIndex).toBe(1);
|
|
|
+ expect(args.oldIndex).toBe(-1);
|
|
|
+ expect(args.oldValues.length).toBe(0);
|
|
|
+ expect(args.newValues[0]).toBe(4);
|
|
|
called = true;
|
|
|
});
|
|
|
value.insert(1, 4);
|
|
|
- expect(called).to.equal(true);
|
|
|
+ expect(called).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
|
|
@@ -162,9 +161,9 @@ describe('@jupyterlab/observables', () => {
|
|
|
it('should move an item from one index to another', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
value.move(1, 2);
|
|
|
- expect(toArray(value)).to.deep.equal([1, 3, 2]);
|
|
|
+ expect(toArray(value)).toEqual([1, 3, 2]);
|
|
|
value.move(2, 0);
|
|
|
- expect(toArray(value)).to.deep.equal([2, 1, 3]);
|
|
|
+ expect(toArray(value)).toEqual([2, 1, 3]);
|
|
|
});
|
|
|
|
|
|
it('should trigger a changed signal', () => {
|
|
@@ -172,16 +171,16 @@ describe('@jupyterlab/observables', () => {
|
|
|
const values = [1, 2, 3, 4, 5, 6];
|
|
|
const value = new ObservableList<number>({ values });
|
|
|
value.changed.connect((sender, args) => {
|
|
|
- expect(sender).to.equal(value);
|
|
|
- expect(args.type).to.equal('move');
|
|
|
- expect(args.newIndex).to.equal(1);
|
|
|
- expect(args.oldIndex).to.equal(0);
|
|
|
- expect(args.oldValues[0]).to.equal(1);
|
|
|
- expect(args.newValues[0]).to.equal(1);
|
|
|
+ expect(sender).toBe(value);
|
|
|
+ expect(args.type).toBe('move');
|
|
|
+ expect(args.newIndex).toBe(1);
|
|
|
+ expect(args.oldIndex).toBe(0);
|
|
|
+ expect(args.oldValues[0]).toBe(1);
|
|
|
+ expect(args.newValues[0]).toBe(1);
|
|
|
called = true;
|
|
|
});
|
|
|
value.move(0, 1);
|
|
|
- expect(called).to.equal(true);
|
|
|
+ expect(called).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
|
|
@@ -189,17 +188,17 @@ describe('@jupyterlab/observables', () => {
|
|
|
it('should remove the first occurrence of a specific item from the list', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
value.removeValue(1);
|
|
|
- expect(toArray(value)).to.deep.equal([2, 3]);
|
|
|
+ expect(toArray(value)).toEqual([2, 3]);
|
|
|
});
|
|
|
|
|
|
it('should return the index occupied by the item', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
- expect(value.removeValue(1)).to.equal(0);
|
|
|
+ expect(value.removeValue(1)).toBe(0);
|
|
|
});
|
|
|
|
|
|
it('should return `-1` if the item is not in the list', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
- expect(value.removeValue(10)).to.equal(-1);
|
|
|
+ expect(value.removeValue(10)).toBe(-1);
|
|
|
});
|
|
|
|
|
|
it('should trigger a changed signal', () => {
|
|
@@ -207,16 +206,16 @@ describe('@jupyterlab/observables', () => {
|
|
|
const values = [1, 2, 3, 4, 5, 6];
|
|
|
const value = new ObservableList<number>({ values });
|
|
|
value.changed.connect((sender, args) => {
|
|
|
- expect(sender).to.equal(value);
|
|
|
- expect(args.type).to.equal('remove');
|
|
|
- expect(args.newIndex).to.equal(-1);
|
|
|
- expect(args.oldIndex).to.equal(1);
|
|
|
- expect(args.oldValues[0]).to.equal(2);
|
|
|
- expect(args.newValues.length).to.equal(0);
|
|
|
+ expect(sender).toBe(value);
|
|
|
+ expect(args.type).toBe('remove');
|
|
|
+ expect(args.newIndex).toBe(-1);
|
|
|
+ expect(args.oldIndex).toBe(1);
|
|
|
+ expect(args.oldValues[0]).toBe(2);
|
|
|
+ expect(args.newValues.length).toBe(0);
|
|
|
called = true;
|
|
|
});
|
|
|
value.removeValue(2);
|
|
|
- expect(called).to.equal(true);
|
|
|
+ expect(called).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
|
|
@@ -224,17 +223,17 @@ describe('@jupyterlab/observables', () => {
|
|
|
it('should remove the item at a specific index', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
value.remove(1);
|
|
|
- expect(toArray(value)).to.deep.equal([1, 3]);
|
|
|
+ expect(toArray(value)).toEqual([1, 3]);
|
|
|
});
|
|
|
|
|
|
it('should return the item at the specified index', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
- expect(value.remove(1)).to.equal(2);
|
|
|
+ expect(value.remove(1)).toBe(2);
|
|
|
});
|
|
|
|
|
|
it('should return `undefined` if the index is out of range', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
- expect(value.remove(10)).to.be.undefined;
|
|
|
+ expect(value.remove(10)).toBeUndefined();
|
|
|
});
|
|
|
|
|
|
it('should trigger a changed signal', () => {
|
|
@@ -242,16 +241,16 @@ describe('@jupyterlab/observables', () => {
|
|
|
const values = [1, 2, 3, 4, 5, 6];
|
|
|
const value = new ObservableList<number>({ values });
|
|
|
value.changed.connect((sender, args) => {
|
|
|
- expect(sender).to.equal(value);
|
|
|
- expect(args.type).to.equal('remove');
|
|
|
- expect(args.newIndex).to.equal(-1);
|
|
|
- expect(args.oldIndex).to.equal(1);
|
|
|
- expect(args.oldValues[0]).to.equal(2);
|
|
|
- expect(args.newValues.length).to.equal(0);
|
|
|
+ expect(sender).toBe(value);
|
|
|
+ expect(args.type).toBe('remove');
|
|
|
+ expect(args.newIndex).toBe(-1);
|
|
|
+ expect(args.oldIndex).toBe(1);
|
|
|
+ expect(args.oldValues[0]).toBe(2);
|
|
|
+ expect(args.newValues.length).toBe(0);
|
|
|
called = true;
|
|
|
});
|
|
|
value.remove(1);
|
|
|
- expect(called).to.equal(true);
|
|
|
+ expect(called).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
|
|
@@ -260,9 +259,9 @@ describe('@jupyterlab/observables', () => {
|
|
|
const values = [1, 2, 3, 4, 5, 6];
|
|
|
const value = new ObservableList<number>({ values });
|
|
|
value.clear();
|
|
|
- expect(value.length).to.equal(0);
|
|
|
+ expect(value.length).toBe(0);
|
|
|
value.clear();
|
|
|
- expect(value.length).to.equal(0);
|
|
|
+ expect(value.length).toBe(0);
|
|
|
});
|
|
|
|
|
|
it('should trigger a changed signal', () => {
|
|
@@ -270,16 +269,16 @@ describe('@jupyterlab/observables', () => {
|
|
|
const values = [1, 2, 3, 4, 5, 6];
|
|
|
const value = new ObservableList<number>({ values });
|
|
|
value.changed.connect((sender, args) => {
|
|
|
- expect(sender).to.equal(value);
|
|
|
- expect(args.type).to.equal('remove');
|
|
|
- expect(args.newIndex).to.equal(0);
|
|
|
- expect(args.oldIndex).to.equal(0);
|
|
|
- expect(toArray(args.oldValues)).to.deep.equal(values);
|
|
|
- expect(args.newValues.length).to.equal(0);
|
|
|
+ expect(sender).toBe(value);
|
|
|
+ expect(args.type).toBe('remove');
|
|
|
+ expect(args.newIndex).toBe(0);
|
|
|
+ expect(args.oldIndex).toBe(0);
|
|
|
+ expect(toArray(args.oldValues)).toEqual(values);
|
|
|
+ expect(args.newValues.length).toBe(0);
|
|
|
called = true;
|
|
|
});
|
|
|
value.clear();
|
|
|
- expect(called).to.equal(true);
|
|
|
+ expect(called).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
|
|
@@ -287,28 +286,28 @@ describe('@jupyterlab/observables', () => {
|
|
|
it('should push an array of items to the end of the list', () => {
|
|
|
const value = new ObservableList<number>({ values: [1] });
|
|
|
value.pushAll([2, 3, 4]);
|
|
|
- expect(toArray(value)).to.deep.equal([1, 2, 3, 4]);
|
|
|
+ expect(toArray(value)).toEqual([1, 2, 3, 4]);
|
|
|
});
|
|
|
|
|
|
it('should return the new length of the list', () => {
|
|
|
const value = new ObservableList<number>({ values: [1] });
|
|
|
- expect(value.pushAll([2, 3, 4])).to.equal(4);
|
|
|
+ expect(value.pushAll([2, 3, 4])).toBe(4);
|
|
|
});
|
|
|
|
|
|
it('should trigger a changed signal', () => {
|
|
|
let called = false;
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
value.changed.connect((sender, args) => {
|
|
|
- expect(sender).to.equal(value);
|
|
|
- expect(args.type).to.equal('add');
|
|
|
- expect(args.newIndex).to.equal(3);
|
|
|
- expect(args.oldIndex).to.equal(-1);
|
|
|
- expect(toArray(args.newValues)).to.deep.equal([4, 5, 6]);
|
|
|
- expect(args.oldValues.length).to.equal(0);
|
|
|
+ expect(sender).toBe(value);
|
|
|
+ expect(args.type).toBe('add');
|
|
|
+ expect(args.newIndex).toBe(3);
|
|
|
+ expect(args.oldIndex).toBe(-1);
|
|
|
+ expect(toArray(args.newValues)).toEqual([4, 5, 6]);
|
|
|
+ expect(args.oldValues.length).toBe(0);
|
|
|
called = true;
|
|
|
});
|
|
|
value.pushAll([4, 5, 6]);
|
|
|
- expect(called).to.equal(true);
|
|
|
+ expect(called).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
|
|
@@ -316,23 +315,23 @@ describe('@jupyterlab/observables', () => {
|
|
|
it('should push an array of items into a list', () => {
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
value.insertAll(1, [2, 3, 4]);
|
|
|
- expect(toArray(value)).to.deep.equal([1, 2, 3, 4, 2, 3]);
|
|
|
+ expect(toArray(value)).toEqual([1, 2, 3, 4, 2, 3]);
|
|
|
});
|
|
|
|
|
|
it('should trigger a changed signal', () => {
|
|
|
let called = false;
|
|
|
const value = new ObservableList<number>({ values: [1, 2, 3] });
|
|
|
value.changed.connect((sender, args) => {
|
|
|
- expect(sender).to.equal(value);
|
|
|
- expect(args.type).to.equal('add');
|
|
|
- expect(args.newIndex).to.equal(1);
|
|
|
- expect(args.oldIndex).to.equal(-1);
|
|
|
- expect(toArray(args.newValues)).to.deep.equal([4, 5, 6]);
|
|
|
- expect(args.oldValues.length).to.equal(0);
|
|
|
+ expect(sender).toBe(value);
|
|
|
+ expect(args.type).toBe('add');
|
|
|
+ expect(args.newIndex).toBe(1);
|
|
|
+ expect(args.oldIndex).toBe(-1);
|
|
|
+ expect(toArray(args.newValues)).toEqual([4, 5, 6]);
|
|
|
+ expect(args.oldValues.length).toBe(0);
|
|
|
called = true;
|
|
|
});
|
|
|
value.insertAll(1, [4, 5, 6]);
|
|
|
- expect(called).to.equal(true);
|
|
|
+ expect(called).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
|
|
@@ -341,13 +340,13 @@ describe('@jupyterlab/observables', () => {
|
|
|
const values = [1, 2, 3, 4, 5, 6];
|
|
|
const value = new ObservableList<number>({ values });
|
|
|
value.removeRange(1, 3);
|
|
|
- expect(toArray(value)).to.deep.equal([1, 4, 5, 6]);
|
|
|
+ expect(toArray(value)).toEqual([1, 4, 5, 6]);
|
|
|
});
|
|
|
|
|
|
it('should return the new length of the list', () => {
|
|
|
const values = [1, 2, 3, 4, 5, 6];
|
|
|
const value = new ObservableList<number>({ values });
|
|
|
- expect(value.removeRange(1, 3)).to.equal(4);
|
|
|
+ expect(value.removeRange(1, 3)).toBe(4);
|
|
|
});
|
|
|
|
|
|
it('should trigger a changed signal', () => {
|
|
@@ -355,16 +354,16 @@ describe('@jupyterlab/observables', () => {
|
|
|
const values = [1, 2, 3, 4];
|
|
|
const value = new ObservableList<number>({ values });
|
|
|
value.changed.connect((sender, args) => {
|
|
|
- expect(sender).to.equal(value);
|
|
|
- expect(args.type).to.equal('remove');
|
|
|
- expect(args.newIndex).to.equal(-1);
|
|
|
- expect(args.oldIndex).to.equal(1);
|
|
|
- expect(toArray(args.oldValues)).to.deep.equal([2, 3]);
|
|
|
- expect(args.newValues.length).to.equal(0);
|
|
|
+ expect(sender).toBe(value);
|
|
|
+ expect(args.type).toBe('remove');
|
|
|
+ expect(args.newIndex).toBe(-1);
|
|
|
+ expect(args.oldIndex).toBe(1);
|
|
|
+ expect(toArray(args.oldValues)).toEqual([2, 3]);
|
|
|
+ expect(args.newValues.length).toBe(0);
|
|
|
called = true;
|
|
|
});
|
|
|
value.removeRange(1, 3);
|
|
|
- expect(called).to.equal(true);
|
|
|
+ expect(called).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
});
|