import { moduleFor, AutobootApplicationTestCase } from 'internal-test-helpers';
import Test from '../lib/test';
import { A as emberA } from '@ember/-internals/runtime';
import { Route } from '@ember/-internals/routing';
import { jQueryDisabled } from '@ember/-internals/views';
moduleFor(
'ember-testing Integration tests of acceptance',
class extends AutobootApplicationTestCase {
constructor() {
super();
this.modelContent = [];
this._originalAdapter = Test.adapter;
this.runTask(() => {
this.createApplication();
this.addTemplate(
'people',
`
{{#each model as |person|}}
{{person.firstName}}
{{/each}}
`
);
this.router.map(function() {
this.route('people', { path: '/' });
});
this.add(
'route:people',
Route.extend({
model: () => this.modelContent,
})
);
this.application.setupForTesting();
});
this.runTask(() => {
this.application.reset();
});
this.application.injectTestHelpers();
}
teardown() {
super.teardown();
Test.adapter = this._originalAdapter;
}
[`@test template is bound to empty array of people`](assert) {
if (!jQueryDisabled) {
this.runTask(() => this.application.advanceReadiness());
window.visit('/').then(() => {
let rows = window.find('.name').length;
assert.equal(rows, 0, 'successfully stubbed an empty array of people');
});
} else {
this.runTask(() => this.application.advanceReadiness());
window.visit('/').then(() => {
expectAssertion(
() => window.find('.name'),
'If jQuery is disabled, please import and use helpers from @ember/test-helpers [https://github.com/emberjs/ember-test-helpers]. Note: `find` is not an available helper.'
);
});
}
}
[`@test template is bound to array of 2 people`](assert) {
if (!jQueryDisabled) {
this.modelContent = emberA([]);
this.modelContent.pushObject({ firstName: 'x' });
this.modelContent.pushObject({ firstName: 'y' });
this.runTask(() => this.application.advanceReadiness());
window.visit('/').then(() => {
let rows = window.find('.name').length;
assert.equal(rows, 2, 'successfully stubbed a non empty array of people');
});
} else {
assert.expect(0);
}
}
[`@test 'visit' can be called without advanceReadiness.`](assert) {
if (!jQueryDisabled) {
window.visit('/').then(() => {
let rows = window.find('.name').length;
assert.equal(
rows,
0,
'stubbed an empty array of people without calling advanceReadiness.'
);
});
} else {
assert.expect(0);
}
}
}
);