Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TEST] First encapsulation test #6466

Merged
merged 1 commit into from
Sep 19, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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