@tiledesk/tiledesk-server
Version:
The Tiledesk server module
1,079 lines (785 loc) • 79.7 kB
JavaScript
//During the test the env variable is set to test
process.env.NODE_ENV = 'test';
process.env.LOG_LEVEL = 'error';
var Faq = require('../models/faq');
var projectService = require('../services/projectService');
var userService = require('../services/userService');
var faqService = require('../services/faqService');
let chatbot_mock = require('./mock/chatbotMock');
let log = false;
//Require the dev-dependencies
let chai = require('chai');
let chaiHttp = require('chai-http');
let server = require('../app');
let should = chai.should();
var fs = require('fs');
const path = require('path');
const Project_user = require('../models/project_user');
const roleConstants = require('../models/roleConstants');
// chai.config.includeStack = true;
var expect = chai.expect;
var assert = chai.assert;
chai.use(chaiHttp);
describe('FaqKBRoute', () => {
describe('Get', () => {
it('get-all-chatbot-with-role-admin-or-owner', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "testbot", type: "external", language: 'fr' })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("testbot");
expect(res.body.language).to.equal("fr");
chai.request(server)
.get('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
done();
});
});
});
});
}).timeout(20000);
it('get-all-chatbot-with-role-agent', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "testbot", type: "external", language: 'fr' })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("testbot");
expect(res.body.language).to.equal("fr");
Project_user.findOneAndUpdate({ id_project: savedProject._id, id_user: savedUser._id }, { role: roleConstants.AGENT }, (err, savedProject_user) => {
chai.request(server)
.get('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
done();
});
})
});
});
});
}).timeout(20000);
})
describe('Create', () => {
it('create-new-chatbot', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "testbot", type: "external", language: 'en' })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("testbot");
expect(res.body.language).to.equal("en");
chai.request(server)
.get('/' + savedProject._id + '/faq_kb/' + res.body._id)
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
done();
});
});
});
});
})
it('create-new-chatbot-auto-slug', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "My Awesome Bot", type: "internal", language: 'en', template: "blank" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("My Awesome Bot");
expect(res.body.slug).to.equal("my-awesome-bot")
expect(res.body.language).to.equal("en");
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "My Awesome Bot", type: "internal", language: 'en', template: "blank" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("My Awesome Bot");
expect(res.body.slug).to.equal("my-awesome-bot-1")
expect(res.body.language).to.equal("en");
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "My Awesome Bot", type: "internal", language: 'en', template: "blank" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("My Awesome Bot");
expect(res.body.slug).to.equal("my-awesome-bot-2")
expect(res.body.language).to.equal("en");
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "My Awesome Bot 1", type: "internal", language: 'en', template: "blank" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("My Awesome Bot 1");
expect(res.body.slug).to.equal("my-awesome-bot-1-1")
expect(res.body.language).to.equal("en");
chai.request(server)
.get('/' + savedProject._id + '/faq_kb/')
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
done();
});
})
})
})
});
});
});
})
it('create-new-chatbot-agent-role', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
Project_user.findOneAndUpdate({ id_project: savedProject._id, id_user: savedUser._id }, { role: roleConstants.AGENT }, (err, savedProject_user) => {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "testbot", type: "external", language: 'fr' })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(403);
expect(res.body.success).to.equal(false);
expect(res.body.msg).to.equal("you dont have the required role.");
done();
});
})
});
});
})
it('create-with-template-example', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test Lastname").then((savedUser) => {
projectService.create("test-faqkb-create", savedUser._id).then((savedProject) => {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "testbot", type: "internal", template: "example" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("testbot");
var id_faq_kb = res.body._id;
setTimeout(() => {
chai.request(server)
.get('/' + savedProject._id + '/faq?id_faq_kb=' + id_faq_kb)
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.an('array').that.is.not.empty;
done();
})
}, 1000)
});
})
})
})
it('create-with-template-blank', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test Lastname").then((savedUser) => {
projectService.create("test-faqkb-create", savedUser._id).then((savedProject) => {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "testbot", type: "internal", template: "blank" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("testbot");
var id_faq_kb = res.body._id;
chai.request(server)
.get('/' + savedProject._id + '/faq?id_faq_kb=' + id_faq_kb)
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("faq_list: ", JSON.stringify(res.body, null, 2)); }
res.should.have.status(200);
res.body.should.be.an('array').that.is.not.empty;
done();
})
});
})
})
})
it('create-new-webhook', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ name: "testflow", type: "tilebot", subtype: "webhook", language: 'en' })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("testflow");
expect(res.body.language).to.equal("en");
expect(res.body.type).to.equal("tilebot");
expect(res.body.subtype).to.equal("webhook")
chai.request(server)
.get('/' + savedProject._id + '/faq/?id_faq_kb=' + res.body._id)
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
done();
});
});
});
});
})
});
describe('Update', () => {
it('update-chatbot-no-slug', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "My Awesome Bot", type: "internal", language: 'en', template: "blank" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("My Awesome Bot");
expect(res.body.slug).to.equal("my-awesome-bot")
expect(res.body.language).to.equal("en");
let id_faq_kb = res.body._id;
chai.request(server)
.put('/' + savedProject._id + '/faq_kb/' + id_faq_kb)
.auth(email, pwd)
.send({ "name": "My Magician Bot" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("My Magician Bot");
expect(res.body.slug).to.equal("my-awesome-bot");
done()
})
});
});
});
})
it('update-chatbot-slug-with-existing-one', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "My Awesome Bot", type: "internal", language: 'en', template: "blank" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("My Awesome Bot");
expect(res.body.slug).to.equal("my-awesome-bot")
expect(res.body.language).to.equal("en");
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "My Awesome Bot", type: "internal", language: 'en', template: "blank" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("My Awesome Bot");
expect(res.body.slug).to.equal("my-awesome-bot-1")
expect(res.body.language).to.equal("en");
let id_faq_kb = res.body._id;
chai.request(server)
.put('/' + savedProject._id + '/faq_kb/' + id_faq_kb)
.auth(email, pwd)
.send({ "slug": "my-awesome-bot" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(500);
res.body.should.be.a('object');
expect(res.body.success).to.equal(false);
expect(res.body.error).to.equal("Slug already exists: my-awesome-bot");
expect(res.body.error_code).to.equal(12001);
done()
})
});
});
});
});
})
it('update-chatbot-and-intents-language', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test Lastname").then((savedUser) => {
projectService.create("test-faqkb-create", savedUser._id).then((savedProject) => {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "testbot", type: "internal", template: "example", language: "en" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("testbot");
var id_faq_kb = res.body._id;
chai.request(server)
.get('/' + savedProject._id + '/faq?id_faq_kb=' + id_faq_kb)
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.an('array').that.is.not.empty;
chai.request(server)
.put('/' + savedProject._id + '/faq_kb/' + id_faq_kb + '/language/it')
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("testbot");
expect(res.body.language).to.equal("it");
chai.request(server)
.get('/' + savedProject._id + '/faq?id_faq_kb=' + id_faq_kb)
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.an('array').that.is.not.empty;
done();
})
})
})
});
})
})
})
})
describe('Import/Export and Fork', () => {
it('fork-chatbot-private', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("current-project", savedUser._id).then(function (currentProject) {
projectService.create("landing-project", savedUser._id).then(function (landingProject) {
class chatbot_service {
async getBotById(id, published, api_url, chatbot_templates_api_url, token, project_id) {
return chatbot_mock.existing_chatbot_mock;
}
async createBot(api_url, token, chatbot, project_id) {
return chatbot_mock.empty_chatbot_mock
}
async importFaqs(api_url, id_faq_kb, token, chatbot, project_id) {
return chatbot_mock.import_faqs_res_mock
}
}
server.set('chatbot_service', new chatbot_service());
chai.request(server)
.post('/' + currentProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "privateBot", type: "internal", language: 'en', public: "false", template: "blank" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("privateBot");
expect(res.body.language).to.equal("en");
let id_faq_kb = res.body._id;
chai.request(server)
.post('/' + currentProject._id + '/faq_kb/fork/' + id_faq_kb + "?public=false&projectid=" + landingProject._id)
.auth(email, pwd)
.set('Content-Type', 'application/json')
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.should.have.be.a('object');
expect(res.body.bot_id).to.equal(chatbot_mock.empty_chatbot_mock._id)
done();
})
})
})
})
})
})
it('fork-chatbot-public', (done) => {
var email_user1 = "user1-signup-" + Date.now() + "@email.com";
var email_user2 = "user2-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email_user1, pwd, "User1 Firstname", "User1 lastname").then(function (user1) {
userService.signup(email_user2, pwd, "User2 Firstname", "User2 lastname").then(function (user2) {
projectService.create("current-project", user1._id).then(function (currentProject) {
projectService.create("landing-project", user2._id).then(function (landingProject) {
if (log) { console.log("mock: ", chatbot_mock.existing_chatbot_mock); }
class chatbot_service {
async getBotById(id, published, api_url, chatbot_templates_api_url, token, project_id) {
return chatbot_mock.existing_chatbot_mock;
}
async createBot(api_url, token, chatbot, project_id) {
return chatbot_mock.empty_chatbot_mock
}
async importFaqs(api_url, id_faq_kb, token, chatbot, project_id) {
return chatbot_mock.import_faqs_res_mock
}
}
server.set('chatbot_service', new chatbot_service());
chai.request(server)
.post('/' + currentProject._id + '/faq_kb')
.auth(email_user1, pwd)
.send({ "name": "publicBot", type: "internal", language: 'en', public: "true", template: "blank" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("publicBot");
expect(res.body.language).to.equal("en");
let id_faq_kb = res.body._id;
chai.request(server)
.post('/' + landingProject._id + '/faq_kb/fork/' + id_faq_kb + '?public=true&projectid=' + landingProject._id)
.auth(email_user2, pwd)
.set('Content-Type', 'application/json')
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
done();
})
})
})
})
})
})
})
it('create-bot-and-import-json', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb/importjson/' + null + "?create=true")
.auth(email, pwd)
.set('Content-Type', 'text/plain')
.attach('uploadFile', fs.readFileSync(path.resolve(__dirname, './fixtures/example-json-rules.txt')), 'example-json-rules')
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.should.be.a('object');
expect(res.body.name).to.equal("example bot");
expect(res.body.slug).to.equal("my-example-bot");
expect(res.body.language).to.equal("en");
let id_faq_kb = res.body._id;
chai.request(server)
.get('/' + savedProject._id + '/faq?id_faq_kb=' + id_faq_kb)
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
//res.body.should.be.an('array').that.is.not.empty;
done();
})
})
})
})
})
it('import-json-in-an-existing-bot', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test Lastname").then(((savedUser) => {
projectService.create('test-faqkb-create', savedUser._id).then((savedProject) => {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "testbot", type: "tilebot", language: "en", template: "blank " })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("testbot");
expect(res.body.language).to.equal("en");
let id_faq_kb = res.body._id;
chai.request(server)
.post('/' + savedProject._id + '/faq_kb/importjson/' + id_faq_kb)
.auth(email, pwd)
.set('Content-Type', 'text/plain')
.attach('uploadFile', fs.readFileSync(path.resolve(__dirname, './fixtures/example-json-rules.txt')), 'example-json-rules')
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("import json res: ", JSON.stringify(res.body, null, 2)); }
res.should.have.status(200);
//res.should.be.a('object');
//expect(res.body.name).to.equal("examplebot");
//expect(res.body.language).to.equal("en");
done();
})
})
})
}))
})
it('import-json-in-an-existing-bot-and-replace-all-intents', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test Lastname").then(((savedUser) => {
projectService.create('test-faqkb-create', savedUser._id).then((savedProject) => {
chai.request(server)
//.post('/' + savedProject._id + '/faq_kb?replace=true')
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "testbot", type: "tilebot", language: "en", template: "empty" })
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("res.body", res.body); }
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("testbot");
expect(res.body.language).to.equal("en");
let id_faq_kb = res.body._id;
chai.request(server)
.get('/' + savedProject._id + '/faq/?id_faq_kb=' + id_faq_kb)
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err) };
if (log) { console.log("res.body: ", res.body) };
res.should.have.status(200)
res.body.should.be.a('array');
expect(res.body.length).to.equal(0);
chai.request(server)
.post('/' + savedProject._id + '/faq_kb/importjson/' + id_faq_kb)
.auth(email, pwd)
.set('Content-Type', 'text/plain')
.attach('uploadFile', fs.readFileSync(path.resolve(__dirname, './fixtures/example-json-rules.txt')), 'example-json-rules')
.end((err, res) => {
if (err) { console.error("err: ", err); }
if (log) { console.log("import json res: ", JSON.stringify(res.body, null, 2)); }
res.should.have.status(200);
res.should.be.a('object');
expect(res.body.name).to.equal("example bot");
expect(res.body.language).to.equal("en");
done();
})
})
})
})
}))
})
it('import-json', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "testbot", type: "internal", language: 'fr', template: "blank" })
.end((err, res) => {
if (err) { console.error("err: ", err) };
if (log) { console.log("res.body: ", res.body) };
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("testbot");
expect(res.body.language).to.equal("fr");
let id_faq_kb = res.body._id;
chai.request(server)
.post('/' + savedProject._id + '/faq_kb/importjson/' + id_faq_kb)
.auth(email, pwd)
.set('Content-Type', 'text/plain')
.attach('uploadFile', fs.readFileSync(path.resolve(__dirname, './fixtures/example-json.txt')), 'example-json.txt')
.end((err, res) => {
if (err) { console.error("err: ", err) };
if (log) { console.log("res.body: ", res.body) };
res.should.have.status(200);
res.should.be.a('object');
expect(res.body.name).to.equal("examplebot");
expect(res.body.language).to.equal("en");
chai.request(server)
.get('/' + savedProject._id + '/faq?id_faq_kb=' + id_faq_kb)
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err) };
if (log) { console.log("res.body: ", res.body) };
res.should.have.status(200);
res.body.should.be.an('array').that.is.not.empty;
done();
})
})
})
})
})
})
it('export-json', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "testbot", type: "internal", template: "example", language: 'fr' })
.end((err, res) => {
if (err) { console.error("err: ", err) };
if (log) { console.log("res.body: ", res.body) };
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("testbot");
expect(res.body.language).to.equal("fr");
let id_faq_kb = res.body._id;
if (log) { console.log("id_faq_kb: ", id_faq_kb); }
chai.request(server)
.get('/' + savedProject._id + '/faq?id_faq_kb=' + id_faq_kb)
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err) };
if (log) { console.log("res.body: ", res.body) };
res.should.have.status(200);
res.body.should.be.an('array').that.is.not.empty;
chai.request(server)
.get('/' + savedProject._id + '/faq_kb/exportjson/' + id_faq_kb)
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err) };
if (log) { console.log("res.body: ", res.body) };
res.should.have.status(200);
//res.body.should.be.a('string');
done();
})
})
// chai.request(server)
// .patch('/' + savedProject._id + '/faq_kb/' + id_faq_kb + '/attributes')
// .auth(email, pwd)
// .send({ variables: { var1: "var1", var2: "var2" }, globals: [{ key: 'test', value: 'test]'}] })
// .end((err, res) => {
// console.log("res.body: ", res.body)
// })
});
});
});
}).timeout(20000);
it('export-json-intents-only)', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
chai.request(server)
.post('/' + savedProject._id + '/faq_kb')
.auth(email, pwd)
.send({ "name": "testbot", type: "internal", template: "example", language: 'fr' })
.end((err, res) => {
if (err) { console.error("err: ", err) };
if (log) { console.log("res.body: ", res.body) };
res.should.have.status(200);
res.body.should.be.a('object');
expect(res.body.name).to.equal("testbot");
expect(res.body.language).to.equal("fr");
let id_faq_kb = res.body._id;
if (log) { console.log("id_faq_kb: ", id_faq_kb); }
chai.request(server)
.get('/' + savedProject._id + '/faq?id_faq_kb=' + id_faq_kb)
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err) };
if (log) { console.log("res.body: ", res.body) };
res.should.have.status(200);
res.body.should.be.an('array').that.is.not.empty;
chai.request(server)
.get('/' + savedProject._id + '/faq_kb/exportjson/' + id_faq_kb + "?intentsOnly=true")
.auth(email, pwd)
.end((err, res) => {
if (err) { console.error("err: ", err) };
if (log) { console.log("res.body: ", res.body) };
res.should.have.status(200);
//res.body.should.be.a('string');
done();
})
})
});
});
});
}).timeout(20000);
it('import-webhook-json', (done) => {
var email = "test-signup-" + Date.now() + "@email.com";
var pwd = "pwd";
userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {