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 suite refactored from mocha to ava #1

Merged
merged 13 commits into from
Oct 23, 2018
Merged
37 changes: 37 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
version: 2
jobs:
build:
docker:
- image: docker:dind
working_directory: /code
steps:
- checkout
- setup_remote_docker
- run:
name: Build application Docker image
command: |
docker build -t memserver .
- deploy:
name: Push application Docker image
command: |
echo $HUB_KEY | docker login -u $HUB_USERNAME --password-stdin
docker tag memserver "${HUB_USERNAME}/memserver:${CIRCLE_BRANCH}"
docker push "${HUB_USERNAME}/memserver:${CIRCLE_BRANCH}"
test:
docker:
- image: docker:dind
working_directory: ~/code
steps:
- setup_remote_docker
- run: docker pull ${HUB_USERNAME}/memserver:${CIRCLE_BRANCH}
- run: docker run -t -d --name="memserver" ${HUB_USERNAME}/memserver:${CIRCLE_BRANCH} /bin/bash
- run: docker exec -it memserver npm test

workflows:
version: 2
build_and_test:
jobs:
- build
- test:
requires:
- build
61 changes: 31 additions & 30 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,32 +1,33 @@
module.exports = {
"env": {
"browser": true,
"commonjs": true,
"es6": true,
"node": true,
"mocha": true
},
"extends": "eslint:recommended",
"parserOptions": {
"sourceType": "module"
},
"rules": {
"indent": [
"error",
2
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
],
"no-console": "off"
}
root: true,
parserOptions: {
ecmaVersion: 2017,
sourceType: 'module'
},
env: {
browser: true,
commonjs: true,
es6: true,
node: true,
},
extends: ['eslint:recommended'],
rules: {
'no-console': 'off',
indent: [
'error',
2
],
'linebreak-style': [
'error',
'unix'
],
'quotes': [
'error',
'single'
],
'semi': [
'error',
'always'
],
}
};
17 changes: 17 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM node:10

RUN apt-get update && \
apt-get install -y lsof vim

WORKDIR /code/

ADD package-lock.json /code/package-lock.json
ADD package.json /code/package.json

RUN npm install

ADD lib /code/lib
ADD test /code/test
ADD . /code/

ENTRYPOINT "/bin/bash"
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
<a href="https://circleci.com/gh/izelnakri/memserver/">
<img src="https://circleci.com/gh/izelnakri/memserver/tree/master.png" alt="Build Status">
</a>

# What is MemServer?
MemServer is an in-memory database/ORM and http mock server you can run in-browser and node environments. Extremely useful library for fast frontend tests, rapid prototyping, single-file SPA demo deployments.

Expand Down
30 changes: 30 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
- investigate silent Errors within MemServer.Server handler context
- make passthrough PASS
- serializerExtraFields params

- add initializer.js
Expand All @@ -11,3 +13,31 @@
- non-json request/responses? - just kidding... or do I?!?
- rollup -i ./lib/response.js -o response.js -f cjs
- memserver glue [jsonEndpoint]



export default Model({
schema: {
username: {
type: String,
required: true,
default: 'xxx',
notNull: true,
unique: true // other min, max,
check(model, next) {
// custom checks if that returns
}
}
},
relationships: {
emails: { // belongsTo, hasMany, hasMany through, hasOne, onReplace, maybe do FK contraint here
model: //

}
}
});

// relationships declaration

import { cast, validateLength, validateRequired, foreignKeyConstraint } from 'memserver/changeset';
import { from } from 'memserver/query';
4 changes: 0 additions & 4 deletions examples/photo-album/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,9 @@
"author": "",
"license": "ISC",
"dependencies": {
"@std/esm": "^0.12.1",
"core-object": "^3.1.5",
"ember-inflector": "^2.0.1"
},
"@std/esm": {
"esm": "all"
},
"devDependencies": {
"pryjs": "^1.0.3"
}
Expand Down
4 changes: 3 additions & 1 deletion lib/model.js
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,9 @@ export default function(options) {
}

const objectRef = parentObject[`${underscore(relationshipName)}_id`] ||
parentObject[`${underscore(relationshipName)}_uuid`];
parentObject[`${underscore(relationshipName)}_uuid`] ||
parentObject[`${underscore(targetRelationshipModel.modelName)}_id`] ||
parentObject[`${underscore(targetRelationshipModel.modelName)}_uuid`];

if (objectRef && (typeof objectRef === 'number')) {
return targetRelationshipModel.find(objectRef) ;
Expand Down
4 changes: 3 additions & 1 deletion model.js
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,9 @@ var model = function(options) {
}

const objectRef = parentObject[`${emberCliStringUtils.underscore(relationshipName)}_id`] ||
parentObject[`${emberCliStringUtils.underscore(relationshipName)}_uuid`];
parentObject[`${emberCliStringUtils.underscore(relationshipName)}_uuid`] ||
parentObject[`${emberCliStringUtils.underscore(targetRelationshipModel.modelName)}_id`] ||
parentObject[`${emberCliStringUtils.underscore(targetRelationshipModel.modelName)}_uuid`];

if (objectRef && (typeof objectRef === 'number')) {
return targetRelationshipModel.find(objectRef) ;
Expand Down
Loading