Skip to content
This repository was archived by the owner on Sep 9, 2021. It is now read-only.

Commit be039e6

Browse files
committed
refactored directory structure to be more JSish
1 parent 0356df3 commit be039e6

23 files changed

+44
-35
lines changed

README.md

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,16 @@
11
# Caesar Bot
2-
## Übersetzt römische Ziffern in arabische
2+
3+
## Minimal Facebook chat bot which translates roman numbers into arabic ones. Oh - and it's takling german only.
4+
5+
6+
## Prerequisites
7+
8+
You should know [git](https://git-scm.com/ "Git Homepage") and [node.js](https://nodejs.org/en/ "Get nodejs") and have
9+
installed both.
10+
11+
## Setup
12+
13+
clone
14+
npm install
15+
npm test
16+
File renamed without changes.

src/test/ai/intention-test.js app/ai/intention.spec.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
let expect = require('chai').expect;
22
let unroll = require('unroll');
3-
let intention = require('../../main/ai/intention');
3+
let intention = require('./intention');
44

55
// wrap mochas it function
66
unroll.use(it);
@@ -54,14 +54,14 @@ describe('Intention', () => {
5454
['mach\'s gut', 'bye'],
5555
['machs gut', 'bye'],
5656
['machet jut', 'bye'],
57-
['mach et jut', 'bye'],
57+
['mach et jut', 'bye']
5858

59-
// offset
60-
["Kann ich meine Brille von der Steuer absetzen?", "offset"],
61-
["Kann ich eine brille von der Steuer absetzen?", "offset"],
62-
["Kann ich Telefonkosten von der Steuer absetzen?", "offset"],
63-
["Kann ich Telefonkosten abschreiben?", "offset"],
64-
["Kann ich Telefonkosten absetzen?", "offset"]
59+
// // TODO: roman numbers
60+
// ["Kann ich meine Brille von der Steuer absetzen?", "offset"],
61+
// ["Kann ich eine brille von der Steuer absetzen?", "offset"],
62+
// ["Kann ich Telefonkosten von der Steuer absetzen?", "offset"],
63+
// ["Kann ich Telefonkosten abschreiben?", "offset"],
64+
// ["Kann ich Telefonkosten absetzen?", "offset"]
6565

6666
])
6767
});

src/main/app.js app/caesar.app.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ let cookieParser = require('cookie-parser');
55
let bodyParser = require('body-parser');
66

77
let errorHandler = require('./error/handler');
8+
89
let index = require('./index/index');
9-
let fb = require('./fb/fb-webhook');
10+
let fb = require('./fb/webhook-router');
1011

1112
let app = express();
1213

src/test/app-smoke-test.js app/caesar.app.spec.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ describe('Smoke testing running app', function () {
55
let app, server;
66

77
beforeEach(function () {
8-
delete require.cache[require.resolve('../main/app')];
9-
app = require('../main/app');
8+
delete require.cache[require.resolve('./caesar.app')];
9+
app = require('./caesar.app');
1010
server = http.createServer(app);
1111
server.listen();
1212
});
File renamed without changes.

src/test/error/handler-test.js app/error/handler.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
let expect = require('chai').expect;
22

3-
let errorHandler = require('../../main/error/handler');
3+
let errorHandler = require('./handler');
44

55
function createMockResponse() {
66
let res = {};

src/main/fb/fb-send-message.js app/fb/fb-send-message.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
let request = require("request");
22

3-
const FB_ACCESS_TOKEN = "EAAPbJ9GulzQBAKOOo5gD4EAtEYTI3Oj7xhtbB3ChUvfYd9oCZBIs7QnJ1AEevbZCwam0IdnjYzlZCJ286scYgabnF0twdvYmz9RiebxmaMHdLE7wGQ5eUlXVRF9FtYw0LfvWx9p811bzbX2mKdepgP42Co5GZBZBrpKdbyB3rPgZDZD";
3+
const FB_ACCESS_TOKEN = "";
44

55

66
function errorHandler(error, response/*, body*/) {

src/test/fb/fb-send-message-test.js app/fb/fb-send-message.spec.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
let expect = require('chai').expect;
22
let mockRequire = require('proxyquire');
3-
let MockConsole = require('../util/mock-console');
3+
let MockConsole = require('../test-util/mock-console');
44

55

66
describe('Sending facebook messages', () => {
77

88
let requestCallArguments;
99

10-
let fbSendMessage = mockRequire('../../main/fb/fb-send-message', {
10+
let fbSendMessage = mockRequire('./fb-send-message', {
1111
'request': (options, callback) => {
1212
requestCallArguments = {
1313
options: options,

src/test/fb/fb-text-message.js app/fb/incomming-test-message.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
let template = require('./fb-message-template.json');
1+
let template = require('./incomming-test-message.template.json');
22

33
function cloneJson(json) {
44
return JSON.parse(JSON.stringify(json));
File renamed without changes.

src/test/fb/webhook-get-test.js app/fb/webhook-get.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
let expect = require('chai').expect;
22
let sinon = require('sinon');
33

4-
let webhookGet = require('../../main/fb/webhook-get');
4+
let webhookGet = require('./webhook-get');
55

66
describe('Webhook GET', () => {
77

src/main/fb/webhook-post.js app/fb/webhook-post.js

-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
let sendTextMessage = require('./fb-send-message').sendTextMessage;
22

3-
const roman = /(Ciao|Bis bald|Adios|Auf Wieder|Bis denne|Tschü|Tschö|mach'?s?\W?(et)? (g|j)ut)/i;
43

54
function getFirstMessaging(req) {
6-
// console.log( JSON.stringify(req.body, null, 2));
75
return req.body.entry[0].messaging;
86
}
97

src/test/fb/webhook-post-test.js app/fb/webhook-post.spec.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
let expect = require('chai').expect;
22
let mockRequire = require('proxyquire');
3-
let mockTextMessage = require('./fb-text-message');
3+
let mockTextMessage = require('./incomming-test-message');
44

55

66
describe('Webhook POST', () => {
77

88
let req,res,sendMessage,statusCode;
99

10-
let webhookPost = mockRequire('../../main/fb/webhook-post', {
10+
let webhookPost = mockRequire('./webhook-post', {
1111
'./fb-send-message': {
1212
sendTextMessage: (sender, text) => {
1313
sendMessage = {
File renamed without changes.
File renamed without changes.

src/test/index/index-get-test.js app/index/index-get.spec.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
let expect = require('chai').expect;
22
let sinon = require('sinon');
33

4-
let indexImpl = require('../../main/index/index-get');
5-
let info = require('../../main/index/info');
4+
let indexImpl = require('./index-get');
5+
let info = require('./info');
66

77
describe('Index implementation', () => {
88

File renamed without changes.

src/main/index/info.js app/index/info.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
let packageJson = require('../../../package.json');
1+
let packageJson = require('../../package.json');
22

33
let indexInfo = {
44
description: `This is the ${packageJson.name}`,

src/test/util/mock-console.js app/test-util/mock-console.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
2-
module.exports =
3-
class MockConsole {
1+
module.exports = class MockConsole {
42
constructor() {
53
this.orgLogMethod = this.getOriginalLogMethod();
64
this.logCalls = [];
75
}
86

97
getOriginalLogMethod() {
10-
if(this.orgLogMethod === undefined) {
8+
if (this.orgLogMethod === undefined) {
119
return console.log;
1210
} else {
1311
return this.orgLogMethod;
@@ -25,4 +23,4 @@ class MockConsole {
2523
console.log = this.orgLogMethod;
2624
}
2725

28-
}
26+
};

bin/server

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* Module dependencies.
55
*/
66

7-
var app = require('../src/main/app');
7+
var app = require('../app/caesar.app');
88
var debug = require('debug')('caesar-bot:server');
99
var http = require('http');
1010

package.json

+2-4
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@
44
"private": true,
55
"scripts": {
66
"start": "babel-node bin/server",
7-
"test": "mocha --compilers js:babel-register src/test/**/*-test.js",
8-
"test_fb": "mocha --compilers js:babel-register src/test/fb/webhook-post-test.js",
9-
"cover": "babel-node node_modules/.bin/isparta cover _mocha -- --reporter dot src/test/**/*-test.js",
7+
"test": "mocha --compilers js:babel-register app/**/*.spec.js",
8+
"cover": "babel-node node_modules/.bin/isparta cover _mocha -- --reporter dot app/**/*.spec.js",
109
"clean": "rm -rf ./build"
1110
},
1211
"dependencies": {
@@ -21,7 +20,6 @@
2120
"request": "^2.72.0"
2221
},
2322
"devDependencies": {
24-
"babel-cli": "^6.10.1",
2523
"chai": "^3.5.0",
2624
"isparta": "^4.0.0",
2725
"istanbul": "^0.4.3",

0 commit comments

Comments
 (0)