in test.js [33:60]
async function test(context, testData) {
logger.log("test started");
logger.log("testData: " + utils.stringify(testData));
// Break the conversation into messages from the user side vs. replies from the bot side
// Each conversation step contains an array of user messages (typically one) and an array of bot replies (typically one, but it's normal to have more than one)
// For each conversation step, first send the user message and then wait for the expected reply
var testUserId = "test-user-" + crypto.randomBytes(4).toString("hex");
var conversationSteps = createConversationSteps(testData);
try {
var initResult = await directline.init(context, testData);
var conversationResult = await testConversation(context, testUserId, conversationSteps, initResult.conversationId, testData.timeout, testData.customDirectlineDomain);
var message = `${getTestTitle(testData)} passed successfully (${conversationResult.count} ${conversationResult.count == 1 ? "step" : "steps"} passed)`;
return new Result(true, message);
}
catch (err) {
var reason;
if (err.hasOwnProperty("details")) {
reason = err.details;
if (reason && reason.hasOwnProperty("message")) {
reason.message = getTestTitle(testData) + ": " + reason.message;
}
}
else {
reason = getTestTitle(testData) + ": " + err.message;
}
return new Result(false, reason, 500);
}
}