сделать http получить звонок после sigin с жасмином и запрос - PullRequest
0 голосов
/ 06 декабря 2018

Я добавляю тесты в приложение, которое уже (частично) существует.Он был написан с использованием angular и php / MariaDB в бэкэнде.Я сейчас работаю над http звонками на сервер.Я планирую использовать Жасмин с запросом.

Я смог сделать несколько простых тестов и могу войти в систему.Но я не могу проверить страницы, требующие входа в систему. Я не могу найти способ добавить токен в вызовы.

Если я все правильно понимаю, на полученное сообщение от подписчика я должен получитьмаркер, который я должен затем использовать в следующих вызовах.Кто написал приложение, следовал инструкциям, приведенным в угловой документации, которая обрабатывает все, поэтому мы учимся понимать, как все работает на самом деле.

Просматривая полученный ответ при входе в систему, единственное, что выглядиттокен - это файл cookie, установленный в заголовке с именем «PHPSESSID».Я читаю и анализирую этот файл cookie, чтобы получить токен, и выполняю следующий вызов следующим образом:

        request.get(
        {
            url: 'http://xxx.xxx.com/php/authentication/session.php',
            'auth': {
                'bearer': mytoken
            }
        }, function(err, res) {
                console.log(res['body']);
                done();
        })

ответ - это то, что я должен получить, если пользователь НЕ вошел в систему.

Использование Почтальона, все работает.По-видимому, он сохраняет токен и использует его для следующего вызова.То есть, если я сделаю вход, а затем сделаю вызов get для session.php, я получу правильный ответ.Я просто не могу понять, что именно делает почтальон звонка или как использовать токен в следующем звонке, используя жасмин и запрос.

1 Ответ

0 голосов
/ 06 декабря 2018

Поскольку токен был передан в качестве файла cookie при ответном вызове, я должен был установить тот же файл cookie при следующем вызове.Вот код всего теста на тот случай, если кому-то понадобится помощь.Сначала я вошел в систему, затем позвонил по адресу, который должен вернуть мою электронную почту, если я действительно вошел в систему.

var request = require('request');

describe("login test", function() {

    it("should log in", (done) => {
        var user = {'email':'test@xxx.de', 'password':'blablabla'};

        request.post(
        {
            url: 'http://xxx/test/public/php/authentication/login.php',
            body: JSON.stringify(user)
        },
        (err, res) => {
            var result = JSON.parse(res['body']);
            var cookieString = res['headers']['set-cookie'];
            expect(result['success']).toBe(true);

            request.get(
            {
                url: 'http://xxx/test/public/php/authentication/session.php',
                headers: {
                    'Cookie': cookieString
                }
            }, function(err, res) {
                    var result = JSON.parse(res['body']);
                    expect(result.user.email).toBe(user.email);
                    done();
            })

        });
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...