Socket
Socket
Sign inDemoInstall

darvin-testing-framework

Package Overview
Dependencies
15
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.7.0 to 1.8.0

45

index.js
'use strict';
const Handlebars = require('handlebars');
const BbPromise = require('bluebird');

@@ -15,2 +16,3 @@ const deepAssign = require('deep-assign');

this._apiUrl = config.apiUrl;
this._handlebars = Handlebars.create();
}

@@ -37,4 +39,18 @@

if (spec.parameters) {
this._validateParameters(spec.parameters);
}
spec.scenarios.forEach(scenario => {
that._validateScenario(spec, scenario);
if (scenario.parameters) {
this._validateParameters(scenario.parameters);
Object.assign(scenario.parameters, parameters);
}
if (spec.parameters) {
scenario.parameters = Object.assign({}, spec.parameters, scenario.parameters);
}
Object.keys(scenario).forEach(key => {

@@ -66,2 +82,10 @@ switch (key) {

_validateParameters(parameters) {
Object.keys(parameters).forEach(parameter => {
if (typeof parameters[parameter] !== 'string') {
throw Error(`Only string parameters are allowed, the invalid parameter is "${parameter}".`)
}
});
}
_validateScenario(spec, scenario) {

@@ -105,3 +129,3 @@ if (!scenario.it && !scenario.fit && !scenario.xit) {

_executeStep(spec, scenario, step, sender) {
const message = Object.assign({}, step.user, {
let message = Object.assign({}, step.user, {
mocks: deepAssign({}, spec.mocks, scenario.mocks, step.mocks),

@@ -111,4 +135,6 @@ contextMock: deepAssign({}, spec.contextMock, scenario.contextMock, step.contextMock)

message = this._formatMessage(message, scenario.parameters);
return this._send(spec, sender, message)
.then(response => this._verifyStep(step, response));
.then(response => this._verifyStep(step, response, scenario.parameters));
}

@@ -142,3 +168,3 @@

_verifyStep(step, response) {
_verifyStep(step, response, context) {
if (step.bot) {

@@ -156,4 +182,5 @@ let index = response.findIndex(m => m.type === 'event');

return expectedResponses.every((expectedResponse, i) =>
this._verify(expectedResponse, response[i], this._verifyResponse.bind(this)));
return expectedResponses.map(response => this._formatMessage(response, context))
.every((expectedResponse, i) =>
this._verify(expectedResponse, response[i], this._verifyResponse.bind(this)));
});

@@ -222,4 +249,12 @@

}
_formatMessage(message, context) {
if (!context || Object.keys(context) === 0) {
return message;
}
return JSON.parse(this._handlebars.compile(JSON.stringify(message), { noEscape: true })(context));
}
}
module.exports = TestingFramework;

3

package.json
{
"name": "darvin-testing-framework",
"version": "1.7.0",
"version": "1.8.0",
"description": "A framework for testing Darvin.ai bots.",

@@ -25,2 +25,3 @@ "main": "index.js",

"deep-assign": "^2.0.0",
"handlebars": "^4.0.11",
"node-fetch": "^1.7.1",

@@ -27,0 +28,0 @@ "uuid": "^3.1.0"

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc