From aa4f6d70358d46ca184570ece77b46fb89c03589 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Sun, 15 Oct 2017 19:21:24 +0200 Subject: [PATCH] Added A+ tests, which aint passing yet --- XPromise.js | 7 ++++--- __tests__/XPromise.tests.js | 19 +++++++++++++++++++ package.json | 8 +++----- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/XPromise.js b/XPromise.js index 51c1a39..726690f 100644 --- a/XPromise.js +++ b/XPromise.js @@ -1,4 +1,4 @@ -export default (({ U, tryCatch }) => U(XPromise => Object.assign( +export default (({ U, tryCatch, immediate }) => U(XPromise => Object.assign( (action, state = { resolvers: [], rejectors: [] }) => ( tryCatch( () => @@ -7,7 +7,7 @@ export default (({ U, tryCatch }) => U(XPromise => Object.assign( !state.left && !state.right && ( state.right = typeof state.then === 'function' ? state.then(value) : value, - state.resolvers.map(resolver => resolver(state.right)), + state.resolvers.map(resolver => immediate(() => resolver(state.right))), state.resolvers.splice(0) ), value => @@ -16,7 +16,7 @@ export default (({ U, tryCatch }) => U(XPromise => Object.assign( typeof state.catch === 'function' ? state.right = state.catch(value) : state.left = value, - state.rejectors.map(resolver => resolver(state.left)), + state.rejectors.map(resolver => immediate(() => resolver(state.left))), state.rejectors.splice(0) ), ), @@ -60,4 +60,5 @@ export default (({ U, tryCatch }) => U(XPromise => Object.assign( catchfunc(err) } }, + immediate: typeof setImmediate === 'function' ? setImmediate : fn => setTimeout(fn, 0) }) diff --git a/__tests__/XPromise.tests.js b/__tests__/XPromise.tests.js index 143b4f4..46d6c93 100644 --- a/__tests__/XPromise.tests.js +++ b/__tests__/XPromise.tests.js @@ -1,4 +1,23 @@ import XPromise from '../XPromise' +import promisesAplusTests from 'promises-aplus-tests' + +describe('Promises/A+ Tests', () => { + test('passes', (done) => { + const adapter = { + deferred() { + const deferred = {} + deferred.promise = XPromise((resolve, reject) => { + deferred.resolve = resolve + deferred.reject = reject + }) + return deferred + } + } + promisesAplusTests(adapter, {bail: true}, () => { + done() + }) + }, 1000000) +}) describe('XPromise', () => { describe('XPromise', () => { diff --git a/package.json b/package.json index 40ea148..6286bc0 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,8 @@ "devDependencies": { "babel-core": "^6.26.0", "babel-jest": "^21.2.0", - "jest": "^21.2.1" - }, - "dependencies": { - "ramda-fantasy": "^0.8.0", - "redux": "^3.7.2" + "babel-preset-env": "^1.6.0", + "jest": "^21.2.1", + "promises-aplus-tests": "*" } }