model-layer
Version:
68 lines (51 loc) • 1.53 kB
text/typescript
import {Collection, Model, Types} from "../../../lib/index";
import assert from "assert";
class Product extends Model<Product> {
structure() {
return {
name: Types.String,
price: Types.Number
};
}
}
describe("Collection.some", () => {
it("some()", () => {
class Products extends Collection<Product> {
Model() {
return Product;
}
}
const products = new Products([
{name: "Eggs", price: 1.8},
{name: "Pie", price: 10},
{name: "Milk", price: 4}
]);
let result = products.some((product) =>
product.get("price")! > 5
);
assert.strictEqual( result, true );
result = products.some((product) =>
product.get("price")! > 20
);
assert.strictEqual( result, false );
});
it("some(f, context)", () => {
class Products extends Collection<Product> {
Model() {
return Product;
}
}
const products = new Products([
{name: "Eggs", price: 1.2}
]);
const context = {
changed: false,
handler() {
this.changed = true;
return true;
}
};
products.some(context.handler, context);
assert.strictEqual(context.changed, true);
});
});