Last active
August 29, 2015 13:57
-
-
Save assaf/9674758 to your computer and use it in GitHub Desktop.
Mix use
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Liberally adapted from our test suites, which uses generators for complex steps (before/after/etc). | |
describe("With new customer", function() { | |
let business; | |
let customer1, customer2, customer3; | |
before(function*() { | |
// We have many tests, but you can only call listen() once | |
// on an HTTP server, so this is a case for resolve-once, and | |
// we use a promise. | |
yield Server.listen(); | |
// This creates a new busines record in the database, with one | |
// user, one product. It returns a generator function that has | |
// multiple asynchronous steps, and return a model instance. | |
business = yield Helper.newBusiness(); | |
// Let's add a customer. We're using an API that doesn't support | |
// promises or thunks because real life use case. | |
customer1 = new Customer({ business, name: "Assaf" }); | |
yield (resume)=> customer1.save(resume); | |
// Now let's add two customers in parallel. The create method (new + save) | |
// takes set of properties and a callback, let's thunk those. | |
let create2 = Customer.create.bind(Customer, { business, name: "A" }); | |
let create3 = Customer.create.bind(Customer, { business, name: "A" }); | |
[customer2, customer3] = yield [one1, one2]; | |
}); | |
it("should .....") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment