This repository has been archived by the owner on Nov 25, 2018. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathadapter-test.js
115 lines (93 loc) · 4.02 KB
/
adapter-test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
'use strict';
var blueprintHelpers = require('ember-cli-blueprint-test-helpers/helpers');
var setupTestHooks = blueprintHelpers.setupTestHooks;
var emberNew = blueprintHelpers.emberNew;
var emberGenerate = blueprintHelpers.emberGenerate;
var emberGenerateDestroy = blueprintHelpers.emberGenerateDestroy;
var modifyPackages = blueprintHelpers.modifyPackages;
var chai = require('ember-cli-blueprint-test-helpers/chai');
var expect = chai.expect;
var SilentError = require('silent-error');
var generateFakePackageManifest = require('../helpers/generate-fake-package-manifest');
describe('Acceptance: ember generate and destroy adapter', function() {
setupTestHooks(this);
it('adapter', function() {
var args = ['adapter', 'foo'];
return emberNew()
.then(() => emberGenerateDestroy(args, _file => {
expect(_file('app/adapters/foo.js'))
.to.contain('import ApplicationAdapter from \'./application\';')
.to.contain('export default ApplicationAdapter.extend({');
expect(_file('tests/unit/adapters/foo-test.js'))
.to.contain('moduleFor(\'adapter:foo\'');
}));
});
it('adapter with --base-class', function() {
var args = ['adapter', 'foo', '--base-class=bar'];
return emberNew()
.then(() => emberGenerateDestroy(args, _file => {
expect(_file('app/adapters/foo.js'))
.to.contain('import BarAdapter from \'./bar\';')
.to.contain('export default BarAdapter.extend({');
expect(_file('tests/unit/adapters/foo-test.js'))
.to.contain('moduleFor(\'adapter:foo\'');
}));
});
it('adapter throws when --base-class is same as name', function() {
var args = ['adapter', 'foo', '--base-class=foo'];
return emberNew()
.then(() => expect(emberGenerate(args))
.to.be.rejectedWith(SilentError, /Adapters cannot extend from themself/));
});
it('adapter when is named "application"', function() {
var args = ['adapter', 'application'];
return emberNew()
.then(() => emberGenerateDestroy(args, _file => {
expect(_file('app/adapters/application.js'))
.to.contain('import JSONAPIAdapter from \'ember-data/adapters/json-api\';')
.to.contain('export default JSONAPIAdapter.extend({');
expect(_file('tests/unit/adapters/application-test.js'))
.to.contain('moduleFor(\'adapter:application\'');
}));
});
it('adapter-test', function() {
var args = ['adapter-test', 'foo'];
return emberNew()
.then(() => emberGenerateDestroy(args, _file => {
expect(_file('tests/unit/adapters/foo-test.js'))
.to.contain('moduleFor(\'adapter:foo\'');
}));
});
it('adapter-test for mocha', function() {
var args = ['adapter-test', 'foo'];
return emberNew()
.then(() => modifyPackages([
{name: 'ember-cli-qunit', delete: true},
{name: 'ember-cli-mocha', dev: true}
]))
.then(() => generateFakePackageManifest('ember-cli-mocha', '0.11.0'))
.then(() => emberGenerateDestroy(args, _file => {
expect(_file('tests/unit/adapters/foo-test.js'))
.to.contain('import { describeModule, it } from \'ember-mocha\';')
.to.contain('describeModule(\n \'adapter:foo\',')
.to.contain('expect(adapter).to.be.ok;');
}));
});
it('adapter-test for mocha v0.12+', function() {
var args = ['adapter-test', 'foo'];
return emberNew()
.then(() => modifyPackages([
{name: 'ember-cli-qunit', delete: true},
{name: 'ember-cli-mocha', dev: true}
]))
.then(() => generateFakePackageManifest('ember-cli-mocha', '0.12.0'))
.then(() => emberGenerateDestroy(args, _file => {
expect(_file('tests/unit/adapters/foo-test.js'))
.to.contain('import { describe, it } from \'mocha\';')
.to.contain('import { setupTest } from \'ember-mocha\';')
.to.contain('describe(\'Unit | Adapter | foo\', function() {')
.to.contain('setupTest(\'adapter:foo\',')
.to.contain('expect(adapter).to.be.ok;');
}));
});
});