Skip to content

Commit

Permalink
big progress on Server tests
Browse files Browse the repository at this point in the history
  • Loading branch information
izelnakri committed Oct 29, 2017
1 parent 13b9217 commit ac5b491
Show file tree
Hide file tree
Showing 6 changed files with 520 additions and 825 deletions.
5 changes: 3 additions & 2 deletions lib/mem-server.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import fs from 'fs';
import chalk from 'chalk';
import stringUtils from 'ember-cli-string-utils';
import { primaryKeyTypeSafetyCheck } from './mem-server/utils';
import startServer from './mem-server/server';

const inflect = require('i')(); // NOTE: make this ES6 import
const ENVIRONMENT_IS_NODE = typeof global === 'object';
Expand All @@ -16,6 +15,8 @@ if (!fs.existsSync('memserver')) {
throw new Error(chalk.red('/memserver/server.js doesn\'t exist for this directory!'));
}

import startServer from './mem-server/server';

const modelFileNames = fs.readdirSync(`${process.cwd()}/memserver/models`);
const targetNamespace = ENVIRONMENT_IS_NODE ? global : window;

Expand All @@ -26,7 +27,7 @@ targetNamespace.MemServer = {
start(options={ logging: true }) {
// scenario starts
// configurations

this.DB = resetDatabase(this.Models);
this.Server = startServer(options); // NOTE: maybe customize it here, make it shorter

Expand Down
6 changes: 4 additions & 2 deletions lib/mem-server/pretender-hacks.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,11 @@ window.Pretender.prototype.handleRequest = function(request) {
var path = request.url;
var handler = this._handlerFor(verb, path, request);

console.log('HANDLER REQUST IS CALLED');
console.log('handler:');
console.log(handler);
var _handleRequest = function(result) {
var statusCode, headers, body;

if (Array.isArray(result) && result.length === 3) {
statusCode = result[0],
headers = pretender.prepareHeaders(result[1]),
Expand Down Expand Up @@ -59,7 +61,7 @@ window.Pretender.prototype.handleRequest = function(request) {
statusCode = getDefaultStatusCode(verb);
headers = pretender.prepareHeaders({ 'Content-Type': 'application/json' });
body = pretender.prepareBody(targetResult, headers);

console.log('UPCOMING RESPONSE PARAMS', statusCode, headers, body);
pretender.handleResponse(request, async, function() {
request.respond(statusCode, headers, body);
pretender.handledRequest(verb, path, request);
Expand Down
28 changes: 14 additions & 14 deletions lib/mem-server/server.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,20 @@
import chalk from 'chalk';

const Server = require(`${process.cwd()}/memserver/server`).default; // NOTE: make this ES6 import

export default function(options) {
const Server = require(`${process.cwd()}/memserver/server`).default; // NOTE: make this ES6 import

// HACK: Pretender REST defaults hack: For better UX
['get', 'put', 'post', 'delete'].forEach((verb) => {
window.Pretender.prototype[verb] = function (path, handler, async) {
const { urlPrefix, namespace } = options; // NOTE: this doesnt allow for this.namespace declaration in the server.js
const fullPath = (urlPrefix || '') + (namespace ? ('/' + namespace) : '') + path;
const targetHandler = handler || getDefaultRouteHandler(verb, fullPath);

return this.register(verb.toUpperCase(), fullPath, targetHandler, async || options.timing);
}
});
// END: Pretender REST default hack: FOr better UX

let pretender = new window.Pretender(function() {
const MemServer = chalk.cyan('[MemServer]');

Expand All @@ -23,18 +35,6 @@ export default function(options) {
}
});

// HACK: Pretender REST defaults hack: For better UX
['get', 'put', 'post', 'delete'].forEach((verb) => {
window.Pretender.prototype[verb] = function (path, handler, async) {
const { urlPrefix, namespace } = options; // NOTE: this doesnt allow for this.namespace declaration in the server.js
const fullPath = (urlPrefix || '') + (namespace ? ('/' + namespace) : '') + path;
const targetHandler = handler || getDefaultRouteHandler(verb, fullPath);

return this.register(verb, fullPath, targetHandler, async || options.timing);
}
});
// END: Pretender REST default hack: FOr better UX

// NOTE: maybe passthrough() api here
// NOTE: maybe this.resource()

Expand Down
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
"route-recognizer": "^0.3.3"
},
"devDependencies": {
"chai": "^4.1.2",
"faker": "^4.1.0",
"jquery": "^3.2.1",
"mkdirp": "^0.5.1",
Expand Down
Loading

0 comments on commit ac5b491

Please sign in to comment.