From 2a619078399f526f580f9ad9506243a487ee5778 Mon Sep 17 00:00:00 2001 From: Gilbert Date: Fri, 1 May 2015 16:47:00 -0500 Subject: [PATCH] Test promise-like catch --- tests/mithril-tests.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/mithril-tests.js b/tests/mithril-tests.js index 8374bd3e..436b61f7 100644 --- a/tests/mithril-tests.js +++ b/tests/mithril-tests.js @@ -3872,6 +3872,12 @@ function testMithril(mock) { mock.XMLHttpRequest.$instances.pop().onreadystatechange() return prop().message === "error occurred" && error().message === "error occurred" }) + test(function() { + var error = m.prop("no error") + var prop = m.request({method: "GET", url: "test", deserialize: function() {throw new Error("error occurred")}}).catch(error) + mock.XMLHttpRequest.$instances.pop().onreadystatechange() + return prop().message === "error occurred" && error().message === "error occurred" + }) test(function() { var error = m.prop("no error"), exception var prop = m.request({method: "GET", url: "test", deserialize: function() {throw new TypeError("error occurred")}}).then(null, error) @@ -4052,6 +4058,13 @@ function testMithril(mock) { deferred.reject("test") return value === "test" }) + test(function() { + var value + var deferred = m.deferred() + deferred.promise.catch(function(data) {value = data}) + deferred.reject("test") + return value === "test" + }) test(function() { var value var deferred = m.deferred() @@ -4059,6 +4072,13 @@ function testMithril(mock) { deferred.reject("test") return value === "foo" }) + test(function() { + var value + var deferred = m.deferred() + deferred.promise.catch(function(data) {return "foo"}).then(function(data) {value = data}) + deferred.reject("test") + return value === "foo" + }) test(function() { var value1, value2 var deferred = m.deferred() @@ -4224,6 +4244,13 @@ function testMithril(mock) { deferred1.resolve("test") return value[0] === "test" && value[1] === "foo" }) + test(function() { + var value + var deferred = m.deferred() + m.sync([deferred.promise]).catch(function(data) {value = data}) + deferred.reject("fail") + return value[0] === "fail" + }) test(function() { var value = 1 m.sync([]).then(function() {value = 2})