Skip to content

Instantly share code, notes, and snippets.

@mikekavouras
Created November 1, 2016 23:32
Show Gist options
  • Save mikekavouras/aa42e4d2cdf31885c9cefb0c5b3deba7 to your computer and use it in GitHub Desktop.
Save mikekavouras/aa42e4d2cdf31885c9cefb0c5b3deba7 to your computer and use it in GitHub Desktop.
// OLD WAY
context("validation") {
it("requires a valid address") {
let order = Order()
order.address = Address()
let campaign = Factory.create(type: Campaign.self).state(.valid)
let product = campaign.products!.first!
let style = product.styles!.first!
let size = style.sizes!.first!
let lineItem = OrderLineItem(campaign: campaign, product: product, style: style, quantity: 1, size: size)
order.lineItems = [lineItem]
let summary = OrderSummary(tax: OrderTax(), shipping: OrderShipping(), immediateFulfillment: ImmediateFulfillment(), total: Money(amount: 1.0, currencyCode: "USD"))
order.summary = summary
let validation = order.validate()
expect(validation.isValid).to(beFalse())
expect(validation.errors.first!).to(equal("Shipping address is invalid"))
let components = AddressComponents(address1: "123 place", address2: nil, city: "castle", state: "MI", zip: "12345", country: "United States", phone: "")
let validAddress = Address(components: components, name: "First Name")
order.address = validAddress
expect(order.validate().isValid).to(beTrue())
}
}
// NEW WAY `Factory.create`
context("validation") {
it("requires a valid address") {
let order = Factory.create(type: Order.self).state(.invalidAddress)
let validation = order.validate()
expect(validation.isValid).to(beFalse())
expect(validation.errors.first!).to(equal("Shipping address is invalid"))
let address = Factory.create(type: Address.self).state(.valid)
order.address = address
expect(order.validate().isValid).to(beTrue())
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment