Skip to content

Commit 82df61c

Browse files
committed
[hotfix/4457]
- unit tests the getters and selectors
1 parent b6d664b commit 82df61c

File tree

2 files changed

+120
-0
lines changed

2 files changed

+120
-0
lines changed

packages/core/test/core/factories/Grid.spec.js

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,64 @@ describe('Grid factory', function() {
324324
});
325325
});
326326

327+
describe('getting Rows', function(){
328+
it('should get Rows', function(){
329+
expect(grid.getRow()).toBe(null);
330+
expect(grid.getRows(grid.rows[0].entity)).toBe(grid.rows[0]);
331+
expect(grid.getRows(grid.rows[0].entity), [grid.rows[0]]).toBe(grid.rows[0]);
332+
});
333+
334+
it('should get Rows by key', function(){
335+
grid.rows[0].entity = {str: 'abc', num: 123, nll: null, multi: true};
336+
grid.rows[1].entity = {multi: true};
337+
grid.rows[0].str = 'abc';
338+
grid.rows[0].num = 123;
339+
grid.rows[0].nll = null;
340+
grid.rows[0].innerMulti = false;
341+
grid.rows[1].innerMulti = false;
342+
343+
expect(grid.getRowsByKey()).toBe(null);
344+
expect(grid.getRowsByKey(true, "test")).toBe(null);
345+
expect(grid.getRowsByKey(true, "str", "abc")).toBe([grid.rows[0]]);
346+
expect(grid.getRowsByKey(true, "str", "def")).toBe(null);
347+
expect(grid.getRowsByKey(true, "num", 123)).toBe([grid.rows[0]]);
348+
expect(grid.getRowsByKey(true, "nll", null)).toBe([grid.rows[0]]);
349+
expect(grid.getRowsByKey(true, "multi", true).length).toBe(2);
350+
351+
expect(grid.getRowsByKey(false, "test")).toBe(null);
352+
expect(grid.getRowsByKey(false, "str", "abc")).toBe([grid.rows[0]]);
353+
expect(grid.getRowsByKey(false, "str", "def")).toBe(null);
354+
expect(grid.getRowsByKey(false, "num", 123)).toBe([grid.rows[0]]);
355+
expect(grid.getRowsByKey(false, "nll", null)).toBe([grid.rows[0]]);
356+
expect(grid.getRowsByKey(true, "innerMulti", false).length).toBe(2);
357+
});
358+
359+
it('should find first Row by key', function(){
360+
grid.rows[0].entity = {str: 'abc', num: 123, nll: null, multi: true};
361+
grid.rows[1].entity = {multi: true};
362+
grid.rows[0].str = 'abc';
363+
grid.rows[0].num = 123;
364+
grid.rows[0].nll = null;
365+
grid.rows[0].innerMulti = false;
366+
grid.rows[1].innerMulti = false;
367+
368+
expect(grid.findRowByKey()).toBe(null);
369+
expect(grid.findRowByKey(true, "test")).toBe(null);
370+
expect(grid.findRowByKey(true, "str", "abc")).toBe([grid.rows[0]]);
371+
expect(grid.findRowByKey(true, "str", "def")).toBe(null);
372+
expect(grid.findRowByKey(true, "num", 123)).toBe([grid.rows[0]]);
373+
expect(grid.findRowByKey(true, "nll", null)).toBe([grid.rows[0]]);
374+
expect(grid.findRowByKey(true, "multi", true).length).toBe(1);
375+
376+
expect(grid.findRowByKey(false, "test")).toBe(null);
377+
expect(grid.findRowByKey(false, "str", "abc")).toBe([grid.rows[0]]);
378+
expect(grid.findRowByKey(false, "str", "def")).toBe(null);
379+
expect(grid.findRowByKey(false, "num", 123)).toBe([grid.rows[0]]);
380+
expect(grid.findRowByKey(false, "nll", null)).toBe([grid.rows[0]]);
381+
expect(grid.findRowByKey(true, "innerMulti", false).length).toBe(1);
382+
});
383+
})
384+
327385
describe('buildColumns', function() {
328386
it('guess correct column types when not specified', function() {
329387
var dataRow = {str: 'abc', num: 123, dat: new Date(), bool: true, obj: {}, nll: null, negNum: -1, posNum: +1};

packages/selection/test/uiGridSelectionService.spec.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,68 @@ describe('ui.grid.selection uiGridSelectionService', function() {
197197
grid.api.selection.selectRow(grid.rows[4].entity);
198198
expect(grid.rows[4].isSelected).toBe(false);
199199
});
200+
201+
it('select by key then unselect rows by key in entity, including selecting rows already selected and unselecting rows not selected', function() {
202+
grid.rows[4].entity = {str: 'abc'};
203+
grid.rows[6].entity = {str: 'def'};
204+
grid.api.selection.selectRowByKey(true, "str", "abc");
205+
expect(grid.rows[4].isSelected).toBe(true);
206+
207+
grid.api.selection.selectRowByKey(true, "str", "def");
208+
expect(grid.rows[4].isSelected).toBe(true);
209+
expect(grid.rows[6].isSelected).toBe(true);
210+
211+
grid.api.selection.selectRowByKey(true, "str", "abc");
212+
expect(grid.rows[4].isSelected).toBe(true);
213+
expect(grid.rows[6].isSelected).toBe(true);
214+
215+
grid.api.selection.unSelectRowByKey(true, "str", "abc");
216+
expect(grid.rows[4].isSelected).toBe(false);
217+
expect(grid.rows[6].isSelected).toBe(true);
218+
219+
grid.api.selection.unSelectRowByKey(true, "str", "abc");
220+
expect(grid.rows[4].isSelected).toBe(false);
221+
expect(grid.rows[6].isSelected).toBe(true);
222+
223+
grid.api.selection.unSelectRowByKey(true, "str", "def");
224+
expect(grid.rows[4].isSelected).toBe(false);
225+
expect(grid.rows[6].isSelected).toBe(false);
226+
227+
grid.rows[4].enableSelection = false;
228+
grid.api.selection.selectRowByKey(true, "str", "abc");
229+
expect(grid.rows[4].isSelected).toBe(false);
230+
});
231+
232+
it('select by key then unselect rows by key outside entity, including selecting rows already selected and unselecting rows not selected', function() {
233+
grid.rows[4] = {str: 'abc'};
234+
grid.rows[6] = {str: 'def'};
235+
grid.api.selection.selectRowByKey(false, "str", "abc");
236+
expect(grid.rows[4].isSelected).toBe(true);
237+
238+
grid.api.selection.selectRowByKey(false, "str", "def");
239+
expect(grid.rows[4].isSelected).toBe(true);
240+
expect(grid.rows[6].isSelected).toBe(true);
241+
242+
grid.api.selection.selectRowByKey(false, "str", "abc");
243+
expect(grid.rows[4].isSelected).toBe(true);
244+
expect(grid.rows[6].isSelected).toBe(true);
245+
246+
grid.api.selection.unSelectRowByKey(false, "str", "abc");
247+
expect(grid.rows[4].isSelected).toBe(false);
248+
expect(grid.rows[6].isSelected).toBe(true);
249+
250+
grid.api.selection.unSelectRowByKey(false, "str", "abc");
251+
expect(grid.rows[4].isSelected).toBe(false);
252+
expect(grid.rows[6].isSelected).toBe(true);
253+
254+
grid.api.selection.unSelectRowByKey(false, "str", "def");
255+
expect(grid.rows[4].isSelected).toBe(false);
256+
expect(grid.rows[6].isSelected).toBe(false);
257+
258+
grid.rows[4].enableSelection = false;
259+
grid.api.selection.selectRowByKey(false, "str", "abc");
260+
expect(grid.rows[4].isSelected).toBe(false);
261+
});
200262
});
201263

202264
describe('setSelected function', function() {

0 commit comments

Comments
 (0)