module("Acceptance: wizard"); test("Wizard starts", assert => { visit("/"); andThen(() => { assert.ok(exists('.wizard-column-contents')); assert.equal(currentPath(), 'step'); }); }); test("Forum Name Step", assert => { visit("/step/hello-world"); andThen(() => { assert.ok(exists('.wizard-step')); assert.ok(exists('.wizard-step-hello-world'), 'it adds a class for the step id'); assert.ok(exists('.wizard-progress')); assert.ok(exists('.wizard-step-title')); assert.ok(exists('.wizard-step-description')); assert.ok(!exists('.invalid .field-full-name'), "don't show it as invalid until the user does something"); assert.ok(exists('.wizard-field .field-description')); assert.ok(!exists('.wizard-btn.back')); assert.ok(!exists('.wizard-field .field-error-description')); }); // invalid data click('.wizard-btn.next'); andThen(() => { assert.ok(exists('.invalid .field-full-name')); }); // server validation fail fillIn('input.field-full-name', "Server Fail"); click('.wizard-btn.next'); andThen(() => { assert.ok(exists('.invalid .field-full-name')); assert.ok(exists('.wizard-field .field-error-description')); }); // server validation ok fillIn('input.field-full-name', "Evil Trout"); click('.wizard-btn.next'); andThen(() => { assert.ok(!exists('.wizard-field .field-error-description')); assert.ok(!exists('.wizard-step-title')); assert.ok(!exists('.wizard-step-description')); assert.ok(exists('input.field-email'), "went to the next step"); assert.ok(!exists('.wizard-btn.next')); assert.ok(exists('.wizard-btn.done'), 'last step shows a done button'); assert.ok(exists('.wizard-btn.back'), 'shows the back button'); }); click('.wizard-btn.back'); andThen(() => { assert.ok(exists('.wizard-step-title')); assert.ok(exists('.wizard-btn.next')); assert.ok(!exists('.wizard-prev')); }); });