Created
April 8, 2021 06:33
-
-
Save deskoh/8e2bac4bff88544488d375473ad4014a to your computer and use it in GitHub Desktop.
FeathersJS Recipes
const feathers = require('@feathersjs/feathers');
const socketio = require('@feathersjs/socketio');
const { socket: commons } = require('@feathersjs/transport-commons');
const assert = require('assert');
const { EventEmitter } = require('events');
const messages = require('../src/messages');
describe('\'messages\' service', () => {
let conn = { testing: true };
let socket = new EventEmitter();
let app;
before(() => {
app = feathers();
app.configure(socketio());
conn = { testing: true };
options = {
emit: 'emit',
done: Promise.resolve(new EventEmitter()),
socketMap: new WeakMap(),
getParams: () => conn,
};
app.configure(commons(options));
app.channel('admins').join(conn);
options.socketMap.set(conn, socket)
app.configure(messages);
});
it('receive `create` event on `admin` channel', (done) => {
app.channel('admins').join(conn);
const payload = { text: 'Hello again' };
socket.once('messages created', (data) => {
try {
assert.strictEqual(data.text, payload.text);
done();
} catch (error) {
done(error)
}
});
app.service('messages').create(payload);
});
});
const feathers = require('@feathersjs/feathers');
const socketio = require('@feathersjs/socketio');
const assert = require('assert');
const messages = require('../src/messages');
describe('\'messages\' service', () => {
let app;
before(() => {
app = feathers();
app.configure(socketio());
app.configure(messages);
app.channel('admins').join({ testing: true });
});
it('receive `create` event on `admin` channel', (done) => {
const channel = app.channel('admins');
const payload = { text: 'Hello again' };
// Ref: packages\transport-commons\src\socket\utils.ts
app.once('publish', (event, combinedChannel, context, data) => {
try {
if (context.path === 'messages' && event === 'created') {
assert(combinedChannel.children.includes(channel));
assert.strictEqual(context.result.text, payload.text);
done();
}
} catch (error) {
done(error);
}
});
app.service('messages').create(payload);
});
});
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment