Skip to content

Commit

Permalink
[#70] Separate the processing for fields
Browse files Browse the repository at this point in the history
  • Loading branch information
8398a7 committed Jun 28, 2020
1 parent 41063c6 commit 66bc99e
Show file tree
Hide file tree
Showing 3 changed files with 229 additions and 210 deletions.
92 changes: 52 additions & 40 deletions __tests__/client.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ import {
Cancelled,
Always,
Field,
GitHub,
} from '../src/client';
import { FieldFactory } from '../src/fields';

const repo = (): Field => {
return {
Expand Down Expand Up @@ -89,31 +91,32 @@ const took = (): Field => {
};
};

const fixedFields = (client: Client, sha?: string) => {
return client.filterField(
const fixedFields = (fields: string, sha?: string) => {
const ff = new FieldFactory(fields);
return ff.filterField(
[
client.includesField('repo') ? repo() : undefined,
client.includesField('message') ? message() : undefined,
client.includesField('commit') ? commit() : undefined,
client.includesField('author') ? author() : undefined,
client.includesField('job') ? job() : undefined,
client.includesField('took') ? took() : undefined,
client.includesField('eventName') ? eventName() : undefined,
client.includesField('ref') ? ref() : undefined,
client.includesField('workflow') ? workflow(sha) : undefined,
ff.includes('repo') ? repo() : undefined,
ff.includes('message') ? message() : undefined,
ff.includes('commit') ? commit() : undefined,
ff.includes('author') ? author() : undefined,
ff.includes('job') ? job() : undefined,
ff.includes('took') ? took() : undefined,
ff.includes('eventName') ? eventName() : undefined,
ff.includes('ref') ? ref() : undefined,
ff.includes('workflow') ? workflow(sha) : undefined,
],
undefined,
);
};

const getTemplate: any = (client: Client, text: string, sha?: string) => {
const getTemplate: any = (fields: string, text: string, sha?: string) => {
return {
text,
attachments: [
{
author_name: '',
color: '',
fields: fixedFields(client, sha),
fields: fixedFields(fields, sha),
},
],
username: '',
Expand Down Expand Up @@ -179,7 +182,7 @@ describe('8398a7/action-slack', () => {
fields: 'repo,message,commit,author,job,eventName,ref,workflow,took',
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const payload = getTemplate(client, `${successMsg}\n`);
const payload = getTemplate(withParams.fields, `${successMsg}\n`);
payload.attachments[0].color = 'good';
expect(await client.success('')).toStrictEqual(payload);
});
Expand All @@ -199,7 +202,7 @@ describe('8398a7/action-slack', () => {
fields: '',
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const payload = getTemplate(client, `${successMsg}\n`);
const payload = getTemplate(withParams.fields, `${successMsg}\n`);
payload.attachments[0].color = 'good';
expect(await client.success('')).toStrictEqual(payload);
});
Expand All @@ -216,7 +219,7 @@ describe('8398a7/action-slack', () => {
fields: '',
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const payload = getTemplate(client, `${failMsg}\n`);
const payload = getTemplate(withParams.fields, `${failMsg}\n`);
payload.attachments[0].color = 'danger';
expect(await client.fail('')).toStrictEqual(payload);
});
Expand All @@ -233,7 +236,7 @@ describe('8398a7/action-slack', () => {
fields: '',
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const payload = getTemplate(client, `${cancelMsg}\n`);
const payload = getTemplate(withParams.fields, `${cancelMsg}\n`);
payload.attachments[0].color = 'warning';
expect(await client.cancel('')).toStrictEqual(payload);
});
Expand All @@ -253,7 +256,7 @@ describe('8398a7/action-slack', () => {
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
const payload = getTemplate(client, msg);
const payload = getTemplate(withParams.fields, msg);
payload.attachments[0].color = 'good';
expect(await client.success(msg)).toStrictEqual(payload);
});
Expand All @@ -272,13 +275,13 @@ describe('8398a7/action-slack', () => {
};
let client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
let payload = getTemplate(client, msg);
let payload = getTemplate(withParams.fields, msg);
payload.attachments[0].color = 'good';
expect(await client.success(msg)).toStrictEqual(payload);

withParams.mention = '';
client = new Client(withParams, process.env.GITHUB_TOKEN, '');
payload = getTemplate(client, msg);
payload = getTemplate(withParams.fields, msg);
payload.attachments[0].color = 'danger';
expect(await client.fail(msg)).toStrictEqual(payload);
});
Expand All @@ -297,7 +300,7 @@ describe('8398a7/action-slack', () => {
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
const payload = getTemplate(client, `<!here> ${msg}`);
const payload = getTemplate(withParams.fields, `<!here> ${msg}`);
payload.attachments[0].color = 'good';
expect(await client.success(msg)).toStrictEqual(payload);
});
Expand All @@ -316,7 +319,7 @@ describe('8398a7/action-slack', () => {
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
const payload = getTemplate(client, `<!here> ${msg}`);
const payload = getTemplate(withParams.fields, `<!here> ${msg}`);
payload.attachments[0].color = 'good';
expect(await client.success(msg)).toStrictEqual(payload);
});
Expand All @@ -335,7 +338,7 @@ describe('8398a7/action-slack', () => {
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
const payload = getTemplate(client, `<!here> ${msg}`);
const payload = getTemplate(withParams.fields, `<!here> ${msg}`);
payload.attachments[0].color = 'danger';
expect(await client.fail(msg)).toStrictEqual(payload);
});
Expand All @@ -354,7 +357,7 @@ describe('8398a7/action-slack', () => {
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
const payload = getTemplate(client, `<!here> ${msg}`);
const payload = getTemplate(withParams.fields, `<!here> ${msg}`);
payload.attachments[0].color = 'warning';
expect(await client.cancel(msg)).toStrictEqual(payload);
});
Expand All @@ -373,15 +376,15 @@ describe('8398a7/action-slack', () => {
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
let payload = getTemplate(client, `<!here> ${msg}`);
let payload = getTemplate(withParams.fields, `<!here> ${msg}`);
payload.attachments[0].color = 'good';
expect(await client.success(msg)).toStrictEqual(payload);

payload = getTemplate(client, `<!here> ${msg}`);
payload = getTemplate(withParams.fields, `<!here> ${msg}`);
payload.attachments[0].color = 'danger';
expect(await client.fail(msg)).toStrictEqual(payload);

payload = getTemplate(client, `<!here> ${msg}`);
payload = getTemplate(withParams.fields, `<!here> ${msg}`);
payload.attachments[0].color = 'warning';
expect(await client.cancel(msg)).toStrictEqual(payload);
});
Expand All @@ -400,7 +403,7 @@ describe('8398a7/action-slack', () => {
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
const payload = getTemplate(client, `<@user_id> ${msg}`);
const payload = getTemplate(withParams.fields, `<@user_id> ${msg}`);
payload.attachments[0].color = 'good';
expect(await client.success(msg)).toStrictEqual(payload);
});
Expand All @@ -419,7 +422,7 @@ describe('8398a7/action-slack', () => {
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
const payload = getTemplate(client, `<!here> ${msg}`);
const payload = getTemplate(withParams.fields, `<!here> ${msg}`);
payload.attachments[0].color = 'good';
expect(await client.success(msg)).toStrictEqual(payload);
});
Expand All @@ -438,7 +441,7 @@ describe('8398a7/action-slack', () => {
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
const payload = getTemplate(client, `<!channel> ${msg}`);
const payload = getTemplate(withParams.fields, `<!channel> ${msg}`);
payload.attachments[0].color = 'good';
expect(await client.success(msg)).toStrictEqual(payload);
});
Expand All @@ -457,7 +460,10 @@ describe('8398a7/action-slack', () => {
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
const payload = getTemplate(client, `<!subteam^user_group_id> ${msg}`);
const payload = getTemplate(
withParams.fields,
`<!subteam^user_group_id> ${msg}`,
);
payload.attachments[0].color = 'good';
expect(await client.success(msg)).toStrictEqual(payload);
});
Expand All @@ -477,7 +483,7 @@ describe('8398a7/action-slack', () => {
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
const payload = getTemplate(
client,
withParams.fields,
`<!subteam^user_group_id> <!subteam^user_group_id2> ${msg}`,
);
payload.attachments[0].color = 'good';
Expand All @@ -498,7 +504,10 @@ describe('8398a7/action-slack', () => {
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
const payload = getTemplate(client, `<@user_id> <@user_id2> ${msg}`);
const payload = getTemplate(
withParams.fields,
`<@user_id> <@user_id2> ${msg}`,
);
payload.attachments[0].color = 'good';
expect(await client.success(msg)).toStrictEqual(payload);
});
Expand All @@ -518,7 +527,7 @@ describe('8398a7/action-slack', () => {
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
const payload = getTemplate(
client,
withParams.fields,
`<@user_id> <!subteam^user_group_id> ${msg}`,
);
payload.attachments[0].color = 'good';
Expand All @@ -540,7 +549,10 @@ describe('8398a7/action-slack', () => {
let client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'hello';

let payload = getTemplate(client, `<@user_id> <@user_id2> ${msg}`);
let payload = getTemplate(
withParams.fields,
`<@user_id> <@user_id2> ${msg}`,
);
payload.attachments[0].color = 'good';
expect(await client.success(msg)).toStrictEqual(payload);
});
Expand All @@ -561,17 +573,17 @@ describe('8398a7/action-slack', () => {
const msg = 'hello';

// for success
let payload = getTemplate(client, msg);
let payload = getTemplate(withParams.fields, msg);
payload.attachments[0].color = 'good';
expect(await client.success(msg)).toStrictEqual(payload);

// for cancel
payload = getTemplate(client, msg);
payload = getTemplate(withParams.fields, msg);
payload.attachments[0].color = 'warning';
expect(await client.cancel(msg)).toStrictEqual(payload);

// for fail
payload = getTemplate(client, msg);
payload = getTemplate(withParams.fields, msg);
payload.attachments[0].color = 'danger';
expect(await client.fail(msg)).toStrictEqual(payload);
});
Expand All @@ -589,7 +601,7 @@ describe('8398a7/action-slack', () => {
fields: 'message,author',
};
const client = new Client(withParams, undefined, '');
const payload = getTemplate(client, `${successMsg}\n`);
const payload = getTemplate(withParams.fields, `${successMsg}\n`);
payload.attachments[0].color = 'good';
payload.attachments[0].fields = payload.attachments[0].fields.filter(
(field: any) => !['message', 'author'].includes(field.title),
Expand Down Expand Up @@ -629,7 +641,7 @@ describe('8398a7/action-slack', () => {
};
const client = new Client(withParams, process.env.GITHUB_TOKEN, '');
const msg = 'mention test';
const payload = getTemplate(client, `<@user_id> ${msg}`, sha);
const payload = getTemplate(withParams.fields, `<@user_id> ${msg}`, sha);
payload.attachments[0].color = 'good';
expect(await client.success(msg)).toStrictEqual(payload);
});
Expand Down
Loading

0 comments on commit 66bc99e

Please sign in to comment.