Я не понимаю, как я могу проверить успешность отправки почты с шуткой - PullRequest
0 голосов
/ 25 мая 2018

У меня есть app.js в экспрессе и почтовом оружии, мне нужно проверить успешность отправки почтового оружия с помощью jest.

////////////app.js///////
var express = require('express');
var bodyParser = require('body-parser')

var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

// Adding headers to support CORS
app.use('*', function (req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, OPTIONS');
    res.header('Access-Control-Allow-Headers', 'Accept, Origin, Content-Type, access_token');
    res.header('Access-Control-Allow-Credentials', 'true');
    next();
});

console.log("Preparing server!")

// Handling request
app.post('/get-client-data', function (req, res) {

    //  console.log("Got a request: ", req.body);

    var postQuery = req.body.query;
    var name = postQuery.name;
    var email = postQuery.email;
    var message = postQuery.message;

    var mailgun = require("mailgun-js");
    var api_key = 'some key';
    var DOMAIN = 'some Domain';
    var mailgun = require('mailgun-js')({ apiKey: api_key, domain: DOMAIN });

    var data = {
        from: 'Mailgun <postmaster@' + DOMAIN + '>',
        to: 'Sales team <some@sales.io>',
        subject: 'Name of client: ' + name + ', email: ' + email,
        text: message,
    };

    mailgun.messages().send(data, function (error, body) {
        console.log(body);
    });
    res.setHeader('Content-Type', 'application/json');
    res.send(JSON.stringify({ 'response': 'email has been sent' }));
});

app.listen(3000, function () {
    console.log('backend is listening on port 3000!');
});

module.exports = app;

Я делаю сообщение из внешнего интерфейса в beckend, а затем отправляю почтовое оружие.

МБ, я должен высмеивать отправку почтового оружия или ответ на API почтового оружия.

1 Ответ

0 голосов
/ 25 мая 2018

То, чего вы пытаетесь достичь - это интеграционное тестирование.

С точки зрения модульного тестирования, макет функции mailgun.messages().send(), чтобы убедиться, что он получает правильные параметры.И ваш код может обрабатывать разные ответы, например, успех и ошибка

См. Здесь ответы о том, как организовать интеграционное тестирование: Как написаны интеграционные тесты для взаимодействия с внешним API?

...