@spalger/kibana
Version:
Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic
163 lines (137 loc) • 3.26 kB
JavaScript
describe('_.move', function () {
var _ = require('lodash');
var expect = require('expect.js');
it('accepts previous from->to syntax', function () {
var list = [
1,
1,
1,
1,
1,
1,
1,
1,
8,
1,
1,
];
expect(list[3]).to.be(1);
expect(list[8]).to.be(8);
_.move(list, 8, 3);
expect(list[8]).to.be(1);
expect(list[3]).to.be(8);
});
it('moves an object up based on a function callback', function () {
var list = [
1,
1,
1,
1,
0,
1,
0,
1,
1,
1,
1,
];
expect(list[4]).to.be(0);
expect(list[5]).to.be(1);
expect(list[6]).to.be(0);
_.move(list, 5, false, function (v) {
return v === 0;
});
expect(list[4]).to.be(1);
expect(list[5]).to.be(0);
expect(list[6]).to.be(0);
});
it('moves an object down based on a function callback', function () {
var list = [
1,
1,
1,
1,
0,
1,
0,
1,
1,
1,
1,
];
expect(list[4]).to.be(0);
expect(list[5]).to.be(1);
expect(list[6]).to.be(0);
_.move(list, 5, true, function (v) {
return v === 0;
});
expect(list[4]).to.be(0);
expect(list[5]).to.be(0);
expect(list[6]).to.be(1);
});
it('moves an object up based on a where callback', function () {
var list = [
{ v: 1 },
{ v: 1 },
{ v: 1 },
{ v: 1 },
{ v: 0 },
{ v: 1 },
{ v: 0 },
{ v: 1 },
{ v: 1 },
{ v: 1 },
{ v: 1 },
];
expect(list[4]).to.have.property('v', 0);
expect(list[5]).to.have.property('v', 1);
expect(list[6]).to.have.property('v', 0);
_.move(list, 5, false, { v: 0 });
expect(list[4]).to.have.property('v', 1);
expect(list[5]).to.have.property('v', 0);
expect(list[6]).to.have.property('v', 0);
});
it('moves an object up based on a where callback', function () {
var list = [
{ v: 1 },
{ v: 1 },
{ v: 1 },
{ v: 1 },
{ v: 0 },
{ v: 1 },
{ v: 0 },
{ v: 1 },
{ v: 1 },
{ v: 1 },
{ v: 1 },
];
expect(list[4]).to.have.property('v', 0);
expect(list[5]).to.have.property('v', 1);
expect(list[6]).to.have.property('v', 0);
_.move(list, 5, true, { v: 0 });
expect(list[4]).to.have.property('v', 0);
expect(list[5]).to.have.property('v', 0);
expect(list[6]).to.have.property('v', 1);
});
it('moves an object down based on a pluck callback', function () {
var list = [
{ id: 0, normal: true },
{ id: 1, normal: true },
{ id: 2, normal: true },
{ id: 3, normal: true },
{ id: 4, normal: true },
{ id: 5, normal: false },
{ id: 6, normal: true },
{ id: 7, normal: true },
{ id: 8, normal: true },
{ id: 9, normal: true }
];
expect(list[4]).to.have.property('id', 4);
expect(list[5]).to.have.property('id', 5);
expect(list[6]).to.have.property('id', 6);
_.move(list, 5, true, 'normal');
expect(list[4]).to.have.property('id', 4);
expect(list[5]).to.have.property('id', 6);
expect(list[6]).to.have.property('id', 5);
});
});