oolong
Version:
Utilities for objects. Simple, tasteful and plentiful. Supports inherited properties.
37 lines (30 loc) • 1.08 kB
JavaScript
var O = require("../..")
var demand = require("must")
describe("Oolong.create", function() {
it("must return an object inheriting from the one given", function() {
var prototype = {}
var obj = O.create(prototype)
Object.getPrototypeOf(obj).must.equal(prototype)
})
it("must return an object inheriting from null if given", function() {
var obj = O.create(null)
demand(Object.getPrototypeOf(obj)).be.null()
})
it("must assign properties to target from one source", function() {
O.create({}, {name: "John"}).must.eql({name: "John"})
})
it("must assign properties to target from two sources", function() {
var obj = O.create({}, {name: "John"}, {age: 13})
obj.must.eql({name: "John", age: 13})
})
it("must throw TypeError given nothing", function() {
var err
try { O.create() } catch (ex) { err = ex }
err.must.be.an.instanceof(TypeError)
})
it("must not modify the given prototype", function() {
var prototype = {name: ""}
O.create(prototype, {name: "John"})
prototype.must.eql({name: ""})
})
})