%PDF- %PDF-
| Direktori : /var/www/projetos/suporte.iigd.com.br/plugins/glpiinventory/lib/lazy.js-0.5.1/spec/ |
| Current File : /var/www/projetos/suporte.iigd.com.br/plugins/glpiinventory/lib/lazy.js-0.5.1/spec/filter_spec.js |
comprehensiveSequenceTest('filter', {
cases: [
{
input: [1, 2, 3, 4, 5],
params: [isEven],
result: [2, 4],
accessCountForTake2: 4
},
{
label: 'pluck-style',
input: [{ foo: true }, { foo: false }, { foo: true }, { foo: false }],
params: ['foo'],
result: [{ foo: true }, { foo: true }],
accessCountForTake2: 3
},
{
label: 'where-style',
input: [
{ foo: 'blub', bar: 1 },
{ foo: 'glub', bar: 2 },
{ foo: 'blub', bar: 3 }
],
params: [{ foo: 'blub' }],
result: [{ foo: 'blub', bar: 1 }, { foo: 'blub', bar: 3 }],
accessCountForTake2: 3
}
],
aliases: ['select', 'where'],
arrayLike: false,
supportsAsync: true
});
describe("filter", function() {
it("combines with previous filters", function() {
var sons = Lazy(people)
.filter(Person.isMale)
.filter(function(p) { return p.getName() !== "David"; })
.toArray();
expect(sons).toEqual([adam, daniel]);
});
describe("ObjectLikeSequence#filter", function() {
var object, result;
beforeEach(function() {
object = {
a: {a: 'a'},
b: {a: 'b'},
c: {a: 'a'}
};
result = Lazy(object).filter({a: 'a'});
});
it("produces an ObjectLikeSequence", function() {
expect(result.toObject()).toEqual({
a: {a: 'a'},
c: {a: 'a'}
});
});
it("result supports #get", function() {
expect(result.get('b')).toEqual(undefined);
expect(result.get('c')).toEqual({a: 'a'});
});
});
});
describe("filter -> reverse", function() {
it("iterates over the filtered elements in reverse order", function() {
var evensBackwards = Lazy([1, 2, 3, 4]).filter(isEven).reverse().toArray();
expect(evensBackwards).toEqual([4, 2]);
});
it("reverses before filtering", function() {
var lastMale = Lazy(people).filter(Person.isMale).reverse().first();
expect(lastMale).toBe(daniel);
expect(Person.accesses).toBe(2);
});
});
describe("reject", function() {
ensureLaziness(function() { Lazy(people).reject(Person.isMale); });
it("does the opposite of filter", function() {
var girls = Lazy(people).reject(Person.isMale).toArray();
expect(girls).toEqual([mary, lauren, happy]);
});
});
describe("compact", function() {
var mostlyFalsy = ["foo", false, null, 0, "", undefined, NaN];
ensureLaziness(function() { Lazy(mostlyFalsy).compact(); });
it("removes all falsy values from an array", function() {
var compacted = Lazy(mostlyFalsy).compact().toArray();
expect(compacted).toEqual(["foo"]);
});
});