Юнит-тесты rabbitMQ с библиотекой amqplib-mocks - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь написать модульные тесты с amqplib-mocks , но я не могу получить сообщение от потребителя, я получаю неопределенное сообщение и пытаюсь отладить, но не успешно.

describe("Rabbitmq testing Server", () => {
    let connection, channel;

    before(async () => {
        connection = await amqplib.connect("amqp://localhost");
        channel = await connection.createChannel();

        await channel.assertExchange(messagesExchange, exchangeType);

        isCreated = await channel.assertQueue(queue);
        isCreated.queue ? console.log('queue created') : 'Queue not created or already exist';

        await channel.bindQueue(queue, messagesExchange, routingKey);

        const isPublish = channel.publish(messagesExchange, routingKey, Buffer.from('should pass test')).valueOf();
        isPublish ? console.log('message published successfully') : 'message not published';
    });

    it("should create the channel", () => {
        assert.isObject(channel);
    });

    it("should register the method call", () => {
        expect(connection.createChannel()).to.have.been.all.keys;
        expect(connection.createChannel()).to.have.been.all.members;
    });

    it("should consumer consume message from queue", async () => {
        let result: string;
        const consumer = await channel.consume(queue, (msg) => {
            result = msg.content.toString();
            console.log(result);
        }, { noAck: true });

        // expect(result).to.be.equal(JSON.stringify({ success: true }));
    });

    after(() => {
        amqplib.reset();
    })

первые два теста проходят, но третий тест получает неопределенное значение.Любая помощь будет признательна.

...