Skip to content

Commit

Permalink
[TEST] First encapsulation test
Browse files Browse the repository at this point in the history
  • Loading branch information
Gaurav0 committed Sep 19, 2019
1 parent 27dbe82 commit 10bb6c7
Show file tree
Hide file tree
Showing 10 changed files with 138 additions and 238 deletions.
78 changes: 54 additions & 24 deletions packages/-serializer-encapsulation-test-app/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,49 +1,79 @@
module.exports = {
parser: 'babel-eslint',
root: true,
parserOptions: {
ecmaVersion: 2018,
sourceType: 'module'
},
plugins: [
'ember'
],
extends: [
'eslint:recommended',
'plugin:ember/recommended'
],
env: {
browser: true
ecmaVersion: 2017,
sourceType: 'module',
},
plugins: ['prettier', 'qunit', 'mocha'],
extends: ['eslint:recommended', 'prettier'],
rules: {
'mocha/no-exclusive-tests': 'error',
'prettier/prettier': 'error',

'no-unused-vars': [
'error',
{
args: 'none',
},
],

'no-cond-assign': ['error', 'except-parens'],
eqeqeq: 'error',
'no-eval': 'error',
'new-cap': [
'error',
{
capIsNew: false,
},
],
'no-caller': 'error',
'no-irregular-whitespace': 'error',
'no-undef': 'error',
'no-eq-null': 'error',
'no-console': 'error', // no longer recommended in eslint v6, this restores it

// probably want to fix these new rules later in separate PR
// Tracked in issue https://github.com/emberjs/data/issues/6405
'no-prototype-builtins': 'off',
'require-atomic-updates': 'off',
},
globals: {
heimdall: true,
Map: false,
WeakMap: true,
Set: true,
},
env: {
browser: true,
node: false,
},
overrides: [
// node files
{
files: [
'.mocharc.js',
'.eslintrc.js',
'.prettierrc.js',
'.template-lintrc.js',
'ember-cli-build.js',
'testem.js',
'blueprints/*/index.js',
'config/**/*.js',
'lib/*/index.js',
'server/**/*.js'
'server/**/*.js',
],
parserOptions: {
sourceType: 'script'
sourceType: 'script',
ecmaVersion: 2015,
},
env: {
browser: false,
node: true
node: true,
es6: true,
},
plugins: ['node'],
rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, {
// add your custom rules and overrides for node files here

// this can be removed once the following is fixed
// https://github.com/mysticatea/eslint-plugin-node/issues/77
'node/no-unpublished-require': 'off'
})
}
]
extends: 'plugin:node/recommended',
},
],
};
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict';

module.exports = {
extends: 'recommended'
extends: 'recommended',
};
2 changes: 1 addition & 1 deletion packages/-serializer-encapsulation-test-app/app/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import config from './config/environment';
const App = Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver
Resolver,
});

loadInitializers(App, config.modulePrefix);
Expand Down
5 changes: 2 additions & 3 deletions packages/-serializer-encapsulation-test-app/app/router.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ import config from './config/environment';

const Router = EmberRouter.extend({
location: config.locationType,
rootURL: config.rootURL
rootURL: config.rootURL,
});

Router.map(function() {
});
Router.map(function() {});

export default Router;
8 changes: 2 additions & 6 deletions packages/-serializer-encapsulation-test-app/config/targets.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
'use strict';

const browsers = [
'last 1 Chrome versions',
'last 1 Firefox versions',
'last 1 Safari versions'
];
const browsers = ['last 1 Chrome versions', 'last 1 Firefox versions', 'last 1 Safari versions'];

const isCI = !!process.env.CI;
const isProduction = process.env.EMBER_ENV === 'production';
Expand All @@ -14,5 +10,5 @@ if (isCI || isProduction) {
}

module.exports = {
browsers
browsers,
};
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
/* eslint node/no-unpublished-require: 'off' */

'use strict';

const EmberApp = require('ember-cli/lib/broccoli/ember-app');
Expand Down
7 changes: 4 additions & 3 deletions packages/-serializer-encapsulation-test-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@
"dependencies": {
"@ember-data/adapter": "3.14.0-alpha.3",
"@ember-data/model": "3.14.0-alpha.3",
"@ember-data/store": "3.14.0-alpha.3"
"@ember-data/store": "3.14.0-alpha.3",
"ember-inflector": "^3.0.1"
},
"devDependencies": {
"@ember/optional-features": "^0.7.0",
"broccoli-asset-rev": "^3.0.0",
"ember-cli": "~3.11.0",
"ember-cli": "~3.12.0",
"ember-cli-app-version": "^3.2.0",
"ember-cli-babel": "^7.7.3",
"ember-cli-dependency-checker": "^3.1.0",
"ember-cli-eslint": "^5.1.0",
"ember-cli-htmlbars": "^3.0.1",
"ember-cli-htmlbars-inline-precompile": "^2.1.0",
"ember-cli-inject-live-reload": "^1.8.2",
Expand All @@ -40,6 +40,7 @@
"ember-qunit": "^4.4.1",
"ember-resolver": "^5.0.1",
"ember-source": "~3.11.1",
"eslint": "^6.3.0",
"eslint-plugin-ember": "^7.0.0",
"eslint-plugin-node": "^9.0.1",
"loader.js": "^4.7.0",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import Model, { attr } from '@ember-data/model';
import Store from '@ember-data/store';
import JSONAPIAdapter from '@ember-data/adapter/json-api';
import EmberObject from '@ember/object';
import { setupTest } from 'ember-qunit';
import { module, test } from 'qunit';
import { resolve } from 'rsvp';

module('integration/requests - running requests with minimum serializer', function(hooks) {
setupTest(hooks);

hooks.beforeEach(function(assert) {
this.owner.register('service:store', Store);
this.owner.register(
'model:person',
class Person extends Model {
@attr name;
}
);
});

test('findAll calls normalizeResponse', async function(assert) {
let normalizeResponseCalled = 0;

class TestMinimumSerializer extends EmberObject {
normalizeResponse(store, schema, rawPayload, id, requestType) {
normalizeResponseCalled++;
assert.equal(requestType, 'findAll', 'expected method name is correct');
assert.deepEqual(rawPayload, { data: [] });
return {
data: [
{
type: 'person',
id: 'urn:person:1',
attributes: {
name: 'Chris',
},
},
],
};
}
}
this.owner.register('serializer:application', TestMinimumSerializer);

class TestAdapter extends JSONAPIAdapter {
defaultSerializer = 'application';

ajax(url, type) {
return resolve({ data: [] });
}
}
this.owner.register('adapter:application', TestAdapter);

const store = this.owner.lookup('service:store');

let response = await store.findAll('person');

assert.equal(normalizeResponseCalled, 1, 'normalizeResponse is called once');
assert.deepEqual(response.mapBy('id'), ['urn:person:1'], 'response is expected response');
});
});
1 change: 1 addition & 0 deletions packages/store/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"test:all": "ember try:each"
},
"dependencies": {
"@ember/ordered-set": "^2.0.3",
"@ember-data/-build-infra": "3.14.0-alpha.3",
"@ember-data/adapter": "3.14.0-alpha.3",
"@ember-data/canary-features": "3.14.0-alpha.3",
Expand Down
Loading

0 comments on commit 10bb6c7

Please sign in to comment.