summaryrefslogtreecommitdiffstats
path: root/vnfmarket/src/main/webapp/vnfmarket/node_modules/kew/test/context.js
diff options
context:
space:
mode:
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/kew/test/context.js')
-rw-r--r--vnfmarket/src/main/webapp/vnfmarket/node_modules/kew/test/context.js89
1 files changed, 89 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/kew/test/context.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/kew/test/context.js
new file mode 100644
index 00000000..b4166816
--- /dev/null
+++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/kew/test/context.js
@@ -0,0 +1,89 @@
+var Q = require('../kew')
+
+// test that contexts are propogated based on position
+exports.testContextWithDelay = function (test) {
+
+ Q.resolve(true)
+ .setContext({id: 1})
+ .then(function (val, context) {
+ test.equal(context.id, 1, 'Should return the first context')
+ return Q.delay(500)
+ })
+ .setContext({id: 2})
+ .then(function (val, context) {
+ test.equal(context.id, 2, 'Should return the second context')
+ return Q.delay(500)
+ })
+ .clearContext()
+ .then(function (val, context) {
+ test.equal(typeof context, 'undefined', 'Should return an undefined context')
+ return Q.delay(500)
+ })
+ .setContext({id: 3})
+ .fin(test.done)
+}
+
+// test adding and removing contexts
+exports.testGeneralContextFlow = function (test) {
+ Q.resolve(true)
+ // test no context exists
+ .then(function (val, context) {
+ test.equal(typeof context, 'undefined', 'Context should be undefined')
+ throw new Error()
+ })
+ .fail(function (e, context) {
+ test.equal(typeof context, 'undefined', 'Context should be undefined')
+ })
+
+ // set the context and mutate it
+ .setContext({counter: 1})
+ .then(function (val, context) {
+ test.equal(context.counter, 1, 'Counter should be 1')
+ context.counter++
+ })
+ .then(function (val, context) {
+ test.equal(context.counter, 2, 'Counter should be 2')
+ context.counter++
+ throw new Error()
+ })
+ .fail(function (e, context) {
+ test.equal(context.counter, 3, 'Counter should be 3')
+ })
+
+ // return a context
+ .then(function (val, context) {
+ return Q.resolve(false)
+ .setContext({counter: 0})
+ })
+ .then(function (val, context) {
+ test.equal(context.counter, 0, 'Counter should be 0')
+ throw new Error()
+ })
+ .fail(function (e, context) {
+ test.equal(context.counter, 0, 'Counter should be 0')
+ })
+
+ // returning a promise with a cleared context won't clear the parent context
+ .then(function (val, context) {
+ return Q.resolve(false).clearContext()
+ })
+ .then(function (val, context) {
+ test.equal(context.counter, 0, 'Counter should be 0')
+ throw new Error()
+ })
+ .fail(function (e, context) {
+ test.equal(context.counter, 0, 'Counter should be 0')
+ })
+
+ // test that clearing the context works
+ .clearContext()
+ .then(function (val, context) {
+ test.equal(typeof context, 'undefined', 'Context should be undefined')
+ throw new Error()
+ })
+ .fail(function (e, context) {
+ test.equal(typeof context, 'undefined', 'Context should be undefined')
+ })
+
+ .fin(test.done)
+} \ No newline at end of file