pubnub
Version:
Publish & Subscribe Real-time Messaging with PubNub
95 lines (79 loc) • 3.21 kB
text/typescript
import { When, Then, Given } from '@cucumber/cucumber';
import { expect } from 'chai';
Given('the id for {string} channel', function (channel) {
const channelMetadata = this.getFixture(channel);
this.parameter = { ...this.parameter, channel: channelMetadata.id };
});
Given('the data for {string} channel', async function (channel) {
const channelMetadata = this.getFixture(channel);
this.parameter = {
...this.parameter,
channel: channelMetadata.id,
data: {
name: channelMetadata.name,
description: channelMetadata.description,
type: channelMetadata.type,
status: channelMetadata.status,
},
};
});
When('I get the channel metadata', async function () {
const pubnub = await this.getPubnub({
publishKey: this.keyset.publishKey,
subscribeKey: this.keyset.subscribeKey,
});
this.response = await pubnub.objects.getChannelMetadata({ ...this.parameter, include: { customFields: false } });
});
When('I set the channel metadata', async function () {
const pubnub = await this.getPubnub({
publishKey: this.keyset.publishKey,
subscribeKey: this.keyset.subscribeKey,
});
this.response = await pubnub.objects.setChannelMetadata(this.parameter);
});
When('I remove the channel metadata', async function () {
const pubnub = await this.getPubnub({
publishKey: this.keyset.publishKey,
subscribeKey: this.keyset.subscribeKey,
});
this.response = await pubnub.objects.removeChannelMetadata(this.parameter);
});
Then('the channel metadata for {string} channel', function (channel) {
const actual = this.response.data;
const expected = this.getFixture(channel);
expect(actual).to.deep.equal(expected);
});
Then('the channel metadata for {string} channel contains updated', function (channel) {
const actual = this.response.data;
const expected = this.getFixture(channel);
expect(actual).to.deep.equal(expected);
});
When('I get the channel metadata with custom', async function () {
const pubnub = await this.getPubnub({
publishKey: this.keyset.publishKey,
subscribeKey: this.keyset.subscribeKey,
});
this.response = await pubnub.objects.getChannelMetadata({ ...this.parameter, include: { customFields: true } });
});
When('I get all channel metadata', async function () {
const pubnub = await this.getPubnub({
publishKey: this.keyset.publishKey,
subscribeKey: this.keyset.subscribeKey,
});
this.response = await pubnub.objects.getAllChannelMetadata();
});
Then('the response contains list with {string} and {string} channel metadata', function (firstChannel, secondChannel) {
const firstChannelData = this.getFixture(firstChannel);
const secondChannelData = this.getFixture(secondChannel);
const actual = this.response.data;
expect(actual).to.have.lengthOf(2);
expect(actual).to.deep.include(firstChannelData);
expect(actual).to.deep.include(secondChannelData);
});
When('I get all channel metadata with custom', async function () {
const pubnub = await this.getPubnub({
publishKey: this.keyset.publishKey,
subscribeKey: this.keyset.subscribeKey,
});
this.response = await pubnub.objects.getAllChannelMetadata({ include: { customFields: true } });
});