checkout = function(done) {
  async.series([
    print('Checking out...'),
    $.go(false, 'waitForElement', 'a#gotoCheckoutBtn'),
    debugCapture('checkout1'),
    $('a#gotoCheckoutBtn').go(false, 'click'),
    $.go(false, 'waitForElement', '#selectPaymentType'),
    debugCapture('checkout2'),
    selectVal('#selectPaymentType', 'Credit Card', true),
    $.go(false, 'waitForElement', 'div#cards'),
    debugCapture('checkout3'),
    selectCard,
    debugCapture('checkout4'),
    selectVal('#selectPaymentType', 'Credit Card', true),
    debugCapture('checkout5'),
    enterCardNumber,
    debugCapture('checkout6'),
    enterCardExpire,
    debugCapture('checkout7'),
    enterCardCode,
    debugCapture('checkout8'),
    enterCardName,
    debugCapture('checkout9'),
    setInput('#tipAmount', 'tip'),
    debugCapture('checkout10'),
    setInput('#billingAddress', 'billing_address'),
    debugCapture('checkout11'),
    setInput('#billingCity', 'billing_city'),
    debugCapture('checkout12'),
    selectVal('#stateSelect', 'billing_state'),
    debugCapture('checkout13'),
    setInput('#billingZip', 'billing_zip'),
    debugCapture('checkout14'),
    $('*:contains("Review Order")').go(false, 'click'),
    $.go(false, 'waitForElement', '*:contains("Review & Place Order")'),
    debugCapture('checkout15'),
    setInput('#companyInput', 'company', true),
    debugCapture('checkout16'),
    setInput('#aptNoInput', 'apt/suite', true),
    debugCapture('checkout17'),
    setInput('#gateCode', 'gate_code', true),
    debugCapture('checkout18'),
    setInput('#deliveryInstructions', 'delivery_instructions', true),
    sleep(1000),
    debugCapture('checkout19'),
    print('Placing order...'),
    $('*:contains("Place Order")').go(false, 'click'),
    $.go(false, 'waitForElement', '*:contains("Thank you for your order")'),
    capture('complete'),
    print('Delivery on its way! Order details at ' + __dirname + '/../screenshots/complete.png')
  ], done);
}
Now checkout...
@param {type} done
@returns {undefined}