Muthu Kumar
6 years ago
3 changed files with 87 additions and 33 deletions
@ -0,0 +1,76 @@ |
|||
'use strict'; |
|||
|
|||
Promise.object = require('../es6'); |
|||
|
|||
// Simple object
|
|||
const testObject1 = { |
|||
foo: Promise.resolve(1), |
|||
bar: { |
|||
foobar: Promise.resolve(2), |
|||
}, |
|||
}; |
|||
|
|||
const resolvedObject1 = { |
|||
foo: 1, |
|||
bar: { |
|||
foobar: 2 |
|||
}, |
|||
}; |
|||
|
|||
// Nested promises with circular reference
|
|||
const testObject2 = { |
|||
foo: Promise.resolve(1), |
|||
bar: { |
|||
foobar: Promise.resolve(2) |
|||
}, |
|||
baz: [ 1, "two", Promise.resolve(3) ], |
|||
}; |
|||
|
|||
testObject2.link1 = testObject2; |
|||
testObject2.link2 = { link3: testObject2 }; |
|||
|
|||
const resolvedObject2 = { |
|||
foo: 1, |
|||
bar: { |
|||
foobar: 2, |
|||
}, |
|||
baz: [ 1, "two", 3 ], |
|||
}; |
|||
|
|||
resolvedObject2.link1 = resolvedObject2; |
|||
resolvedObject2.link2 = { link3: resolvedObject2 }; |
|||
|
|||
// Deeply nested promises
|
|||
const testObject3 = Promise.resolve({ |
|||
foo: Promise.resolve({ |
|||
bar: Promise.resolve( |
|||
Promise.resolve(5) |
|||
), |
|||
}), |
|||
}); |
|||
|
|||
const resolvedObject3 = { |
|||
foo: { |
|||
bar: 5, |
|||
}, |
|||
}; |
|||
|
|||
/* global describe it expect */ |
|||
describe("Promise.object", () => { |
|||
|
|||
it("Should return resolvedObject1", () => { |
|||
return Promise.object(testObject1) |
|||
.then(obj => expect(obj).toEqual(resolvedObject1)); |
|||
}) |
|||
|
|||
it("Should return resolvedObject2", () => { |
|||
return Promise.object(testObject2) |
|||
.then(obj => expect(obj).toEqual(resolvedObject2)); |
|||
}) |
|||
|
|||
it("Should return resolvedObject3", () => { |
|||
return Promise.object(testObject3) |
|||
.then(obj => expect(obj).toEqual(resolvedObject3)); |
|||
}) |
|||
|
|||
}) |
@ -0,0 +1,11 @@ |
|||
{ |
|||
"spec_dir": "spec", |
|||
"spec_files": [ |
|||
"**/*[sS]pec.js" |
|||
], |
|||
"helpers": [ |
|||
"helpers/**/*.js" |
|||
], |
|||
"stopSpecOnExpectationFailure": false, |
|||
"random": true |
|||
} |
@ -1,33 +0,0 @@ |
|||
Promise.object = require('./es6'); |
|||
const assert = require('assert'); |
|||
|
|||
const linked = { |
|||
foo: Promise.resolve(1), |
|||
bar: { |
|||
foobar: Promise.resolve(2) |
|||
}, |
|||
baz: [1, "two", Promise.resolve(3)], |
|||
ok: "four" |
|||
} |
|||
|
|||
linked.linked = linked; |
|||
|
|||
Promise.object(linked).then(x => { |
|||
console.log(x); |
|||
assert(x.foo === 1); |
|||
assert(x.bar.foobar === 2); |
|||
assert(x.baz[0] === 1 && x.baz[1] === "two"); |
|||
assert(Array.isArray(x.baz) && x.baz[2] === 3); |
|||
assert(x.linked === x); |
|||
}); |
|||
|
|||
Promise.object( |
|||
Promise.resolve({ |
|||
foo: Promise.resolve({ |
|||
bar: Promise.resolve(4) |
|||
}) |
|||
}) |
|||
).then(x => { |
|||
console.log(x) |
|||
assert(x.foo.bar === 4); |
|||
}); |
Loading…
Reference in new issue