Skip to content

Commit

Permalink
Adding assert.becomes and assert.doesNotBecome.
Browse files Browse the repository at this point in the history
Equivalent to `assert.eventually.deepEqual` and `assert.eventually.notDeepEqual`.
  • Loading branch information
domenic committed Apr 9, 2012
1 parent 7008e5f commit 0dda7d3
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
8 changes: 8 additions & 0 deletions lib/chai-as-promised.js
Expand Up @@ -313,4 +313,12 @@
return augmentedPromiseToAssert;
};
});

assert.becomes = function (promise, value) {
return assert.eventually.deepEqual(promise, value);
};

assert.doesNotBecome = function (promise, value) {
return assert.eventually.notDeepEqual(promise, value);
};
}));
22 changes: 20 additions & 2 deletions test/assertEventually.coffee
Expand Up @@ -13,6 +13,11 @@ describe "Assert interface with eventually extender:", ->
it ".eventually.include(promiseForArray, arrayMember)", (done) ->
assert.eventually.include(Q.resolve([1, 2, 3]), 1).notify(done)

it ".becomes(true)", (done) ->
assert.becomes(Q.resolve(true), true).notify(done)
it ".doesNotBecome(false)", (done) ->
assert.doesNotBecome(Q.resolve(true), false).notify(done)

describe "On a promise fulfilled with the number 42", ->
beforeEach ->
promise = Q.resolve(42)
Expand All @@ -32,16 +37,29 @@ describe "Assert interface with eventually extender:", ->
describe ".eventually.notEqual(promise, 52)", ->
shouldPass -> assert.eventually.notEqual(promise, 52)

describe ".becomes(promise, 42)", ->
shouldPass -> assert.becomes(promise, 42)
describe ".becomes(promise, 52)", ->
shouldFail -> assert.becomes(promise, 52)
describe ".doesNotBecome(promise, 42)", ->
shouldFail -> assert.doesNotBecome(promise, 42)
describe ".doesNotBecome(promise, 52)", ->
shouldPass -> assert.doesNotBecome(promise, 52)

describe "On a promise fulfilled with { foo: 'bar' }", ->
beforeEach ->
promise = Q.resolve(foo: "bar")

describe ".eventually.equal({ foo: 'bar' })", ->
describe ".eventually.equal(promise, { foo: 'bar' })", ->
shouldFail -> assert.eventually.equal(promise, foo: "bar")
describe ".eventually.deepEqual({ foo: 'bar' })", ->
describe ".eventually.deepEqual(promise, { foo: 'bar' })", ->
shouldPass -> assert.eventually.deepEqual(promise, foo: "bar")

describe ".becomes(promise, { foo: 'bar' })", ->
shouldPass -> assert.becomes(promise, foo: "bar")
describe ".doesNotBecome(promise, { foo: 'bar' })", ->
shouldFail -> assert.doesNotBecome(promise, foo: "bar")

describe "Assertion messages", ->
message = "He told me enough! He told me you killed him!"

Expand Down

0 comments on commit 0dda7d3

Please sign in to comment.