import startApp from 'wizard/test/helpers/start-app'; var wizard; QUnit.module("Acceptance: wizard", { beforeEach() { wizard = startApp(); }, afterEach() { Ember.run(wizard, 'destroy'); } }); test("Wizard starts", assert => { visit("/"); andThen(() => { assert.ok(exists('.wizard-column-contents')); assert.equal(currentPath(), 'step'); }); }); test("Going back and forth in steps", assert => { visit("/steps/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('.select-kit.field-snack'), "went to the next step"); assert.ok(exists('.preview-area'), "renders the component field"); assert.ok(!exists('.wizard-btn.next')); assert.ok(exists('.wizard-btn.done'), 'last step shows a done button'); assert.ok(exists('.action-link.back'), 'shows the back button'); }); click('.action-link.back'); andThen(() => { assert.ok(exists('.wizard-step-title')); assert.ok(exists('.wizard-btn.next')); assert.ok(!exists('.wizard-prev')); }); });