mirror of
https://github.com/wassname/talk.git
synced 2026-08-12 12:30:39 +08:00
Jest for server
- Introduced the Jest testing framework into our server side code so plugins can now have tests that run
This commit is contained in:
@@ -239,26 +239,14 @@ function getReactionConfig(reaction) {
|
||||
hooks: {
|
||||
Action: {
|
||||
__resolveType: {
|
||||
post({ action_type }) {
|
||||
switch (action_type) {
|
||||
case REACTION:
|
||||
return `${Reaction}Action`;
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
},
|
||||
post: ({ action_type }) =>
|
||||
action_type === REACTION ? `${Reaction}Action` : undefined,
|
||||
},
|
||||
},
|
||||
ActionSummary: {
|
||||
__resolveType: {
|
||||
post({ action_type }) {
|
||||
switch (action_type) {
|
||||
case REACTION:
|
||||
return `${Reaction}ActionSummary`;
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
},
|
||||
post: ({ action_type = '' } = {}) =>
|
||||
action_type === REACTION ? `${Reaction}ActionSummary` : undefined,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
const getReactionConfig = require('./getReactionConfig');
|
||||
|
||||
describe('plugins-api', () => {
|
||||
describe('getReactionConfig', () => {
|
||||
let config;
|
||||
beforeEach(() => {
|
||||
config = getReactionConfig('heart');
|
||||
});
|
||||
|
||||
describe('context', () => {
|
||||
it('provides a sort function', () => {
|
||||
expect(config.context.Sort).toBeInstanceOf(Function);
|
||||
const sort = config.context.Sort();
|
||||
expect(sort.Comments).toHaveProperty('hearts');
|
||||
});
|
||||
});
|
||||
|
||||
describe('hooks', () => {
|
||||
it('handles the __resolveType properly', () => {
|
||||
expect(config.hooks.ActionSummary.__resolveType).toHaveProperty('post');
|
||||
expect(config.hooks.ActionSummary.__resolveType.post).toBeInstanceOf(
|
||||
Function
|
||||
);
|
||||
expect(
|
||||
config.hooks.ActionSummary.__resolveType.post({})
|
||||
).toBeUndefined();
|
||||
expect(
|
||||
config.hooks.ActionSummary.__resolveType.post({ action_type: 'LOVE' })
|
||||
).toBeUndefined();
|
||||
expect(
|
||||
config.hooks.ActionSummary.__resolveType.post({
|
||||
action_type: 'HEART',
|
||||
})
|
||||
).toEqual('HeartActionSummary');
|
||||
});
|
||||
it('handles the __resolveType properly', () => {
|
||||
expect(config.hooks.Action.__resolveType).toHaveProperty('post');
|
||||
expect(config.hooks.Action.__resolveType.post).toBeInstanceOf(Function);
|
||||
expect(config.hooks.Action.__resolveType.post({})).toBeUndefined();
|
||||
expect(
|
||||
config.hooks.Action.__resolveType.post({ action_type: 'LOVE' })
|
||||
).toBeUndefined();
|
||||
expect(
|
||||
config.hooks.Action.__resolveType.post({
|
||||
action_type: 'HEART',
|
||||
})
|
||||
).toEqual('HeartAction');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user