1 | require("..");
|
2 | var assert = require("assert")
|
3 | var path = require('path');
|
4 | var fs = require('fs');
|
5 | var filename = path.basename(__filename);
|
6 |
|
7 | class 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 |
|
97 | export default new Tests();
|