Тестирование вызовов XSRF: как установить заголовок со значением из cookie в тесте chai mocha - PullRequest
0 голосов
/ 10 июня 2019

Я пишу интеграционный тест с помощью chaihttp, я хочу перехватить файл cookie, сгенерированный после вызова GET, поместить его в заголовок и отправить заголовок обратно на сервер.Это необходимо, потому что сервер должен проверить, совпадают ли значение заголовка и значение cookie.Это моя защита XSRF.

У меня есть этот код:

import * as chai from 'chai';
import { expect } from 'chai'
import chaiHttp = require('chai-http');
import { app, testServer } from '../../server';


chai.use(chaiHttp);
chai.should();

function getrels(agent : ChaiHttp.Agent) {

}

describe('Relaties', () => {
    let agent = chai.request.agent(app);

    before(function (done) {
        console.log('outer describe - beforeEach');

        agent
            .put('/api/ehrm-klantnr/medewerker/login')
            .send({ email: 'admin@sfgtest.com', wachtwoord: '<secret>' })
            .then(function (res) {
                expect(res).to.have.cookie('SESSIONID');
                expect(res).to.have.cookie('XSRF-TOKEN');
                done();
            });
    });

    describe('Ophalen alle relaties met: GET /api/ehrm-klantnr/relatie', () => {
        it('should get alle relaties', (done) => {

            agent.get('/api/ehrm-klantnr/relatie')
                .set('xsrf-token', 'get the XSRF-TOKEN value here somehow ???')
                .then(function (res) {
                    expect(res).to.have.status(200);
                    expect(res).to.be.an('object');
                    expect(res.body.data).to.be.an('array');
                    expect(res.body.data[0]).to.be.an('object');
                    expect(res.body.data[0].id).to.equal(1);
                    done();
                });
        });
    });
});

Так что в месте, где находятся три знака вопроса, мне нужно установить значение отправляемого XSRF-TOKENкак печенье.Как это решить?

...