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