UNPKG

3.98 kBJavaScriptView Raw
1require("..");
2var assert = require("assert")
3var path = require('path');
4var fs = require('fs');
5var filename = path.basename(__filename);
6
7class Tests{
8 constructor(){
9 var methods = Object.getOwnPropertyNames(Tests.prototype);
10 for(var i = 0; i < methods.length; i++){
11 if(["constructor"].indexOf(methods[i]) === -1){
12 if(["before", "after", "beforeEach"].indexOf(methods[i]) === -1){
13 this[filename.substr(0,filename.length-3)+"->"+methods[i].replace(new RegExp("\_", 'g'), "->")] = this[methods[i]];
14 }else{
15 this[methods[i]] = this[methods[i]];
16 }
17 }
18 }
19 }
20 async server_create(){
21 this._server = CakeJS.createServer();
22 this._server.config({
23 "CakeJS": {
24 "src": path.resolve(__filename,"..","src"),
25 },
26 "Static": {
27 "webroot": path.resolve(__filename,"..","webroot"),
28 }
29 });
30 await this._server.start();
31 }
32 async connection(){
33 var response = await new Promise((resolve, reject) => require('request').get('http://127.0.0.1:8080/').on('error', error => {return reject(error);}).on('response',response => {
34 resolve(response);
35 }));
36 assert.equal(response.statusCode, 200, "Was expecting a successful get");
37 var data = await new Promise((resolve, reject) => require('request').get('http://127.0.0.1:8080/').on('error', error => {return reject(error);}).on('data',data => {
38 resolve(data);
39 }));
40 assert.equal(data.toString(), fs.readFileSync(path.resolve(__filename,"..","webroot", "index.html")), "The response was incorrect");
41 }
42 async routing(){
43 var response = await new Promise((resolve, reject) => require('request').get('http://127.0.0.1:8080/Test').on('error', error => {return reject(error);}).on('response',response => {
44 resolve(response);
45 }));
46 assert.equal(response.statusCode, 200, "Was expecting a successful get");
47 var data = await new Promise((resolve, reject) => require('request').get('http://127.0.0.1:8080/Test').on('error', error => {return reject(error);}).on('data',data => {
48 resolve(data);
49 }));
50 try{
51 data = JSON.parse(data);
52 }catch(e){
53 throw new Error("Unable to parse data");
54 }
55 assert.equal(data, true, "The response was incorrect");
56 }
57 async routing_error_regular(){
58 var response = await new Promise((resolve, reject) => require('request').get('http://127.0.0.1:8080/Test/error').on('error', error => {return reject(error);}).on('response',response => {
59 resolve(response);
60 }));
61 assert.equal(response.statusCode, 500, "Was expecting a failure get");
62 }
63 async routing_error_client(){
64 var response = await new Promise((resolve, reject) => require('request').get('http://127.0.0.1:8080/Test/client_error').on('error', error => {return reject(error);}).on('response',response => {
65 resolve(response);
66 }));
67 assert.equal(response.statusCode, 510, "Was expecting a failure get");
68 var data = await new Promise((resolve, reject) => require('request').get('http://127.0.0.1:8080/Test/client_error').on('error', error => {return reject(error);}).on('data',data => {
69 resolve(data);
70 }));
71 assert.equal(data.toString(),'{"custom":"error"}', "Was expecting a json string");
72 }
73 async routing_post(){
74 var form = {
75 "keyA": "valueA",
76 "keyB": "valueB"
77 };
78 var response = await new Promise((resolve, reject) => require('request').post('http://127.0.0.1:8080/Test/post').form(form).on('error', error => {return reject(error);}).on('response',response => {
79 resolve(response);
80 }));
81 assert.equal(response.statusCode, 200, "Was expecting a successful get");
82 var data = await new Promise((resolve, reject) => require('request').post('http://127.0.0.1:8080/Test/post').form(form).on('error', error => {return reject(error);}).on('data',data => {
83 resolve(data);
84 }));
85 try{
86 data = JSON.parse(data);
87 }catch(e){
88 throw new Error("Unable to parse data");
89 }
90 assert.equal(JSON.stringify(data), JSON.stringify(form), "The response was incorrect");
91 }
92 async server_stop(){
93 await this._server.stop();
94 }
95}
96
97export default new Tests();