From ffaf219aa7c8a9d6eef4b4dc89c4aeae831482c1 Mon Sep 17 00:00:00 2001 From: m2en Date: Sat, 24 Dec 2022 20:53:51 +0900 Subject: [PATCH 1/5] feat: nine meme --- src/service/command/meme/index.ts | 4 ++- src/service/command/meme/nine.ts | 13 ++++++++ src/service/command/meme/test/nine.test.ts | 36 ++++++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 src/service/command/meme/nine.ts create mode 100644 src/service/command/meme/test/nine.test.ts diff --git a/src/service/command/meme/index.ts b/src/service/command/meme/index.ts index aded7161..1d8c8e4d 100644 --- a/src/service/command/meme/index.ts +++ b/src/service/command/meme/index.ts @@ -6,6 +6,7 @@ import { lolicon } from './lolicon.js'; import { moeta } from './moeta.js'; import { n } from './n.js'; import { nigetane } from './nigetane.js'; +import { nine } from './nine.js'; import { ojaru } from './ojaru.js'; import { takopi } from './takopi.js'; import { web3 } from './web3.js'; @@ -21,5 +22,6 @@ export const memes = [ moeta, kenjou, koume, - ojaru + ojaru, + nine ]; diff --git a/src/service/command/meme/nine.ts b/src/service/command/meme/nine.ts new file mode 100644 index 00000000..68047558 --- /dev/null +++ b/src/service/command/meme/nine.ts @@ -0,0 +1,13 @@ +import type { MemeTemplate } from '../../../model/meme-template.js'; + +export const nine: MemeTemplate = { + commandNames: ['nine'], + description: '〇〇は〇〇が9割', + flagsKeys: [], + optionsKeys: [], + errorMessage: '人は引数ミスが9割', + generate(args) { + const [option1, option2] = args.body.split(' '); + return `${option1}は${option2}が9割`; + } +}; diff --git a/src/service/command/meme/test/nine.test.ts b/src/service/command/meme/test/nine.test.ts new file mode 100644 index 00000000..8425112b --- /dev/null +++ b/src/service/command/meme/test/nine.test.ts @@ -0,0 +1,36 @@ +import { describe, expect, it } from 'vitest'; +import { Meme } from '../../meme.js'; + +import { createMockMessage } from '../../command-message.js'; +import { parseStringsOrThrow } from '../../../../adaptor/proxy/command/schema.js'; + +describe('meme', () => { + const responder = new Meme(); + + it('use case of dousurya', async () => { + await responder.on( + createMockMessage( + parseStringsOrThrow(['nine', '限界開発鯖', 'オタク'], responder.schema), + (message) => { + expect(message).toStrictEqual({ + description: `限界開発鯖はオタクが9割` + }); + } + ) + ); + }); + + it('args null (dousureba)', async () => { + await responder.on( + createMockMessage( + parseStringsOrThrow(['nine'], responder.schema), + (message) => { + expect(message).toStrictEqual({ + description: '人は引数ミスが9割', + title: '引数が不足してるみたいだ。' + }); + } + ) + ); + }); +}); From 71a7caa1dd4195727fea5cd92540726c2b85cd51 Mon Sep 17 00:00:00 2001 From: m2en Date: Sat, 24 Dec 2022 20:54:47 +0900 Subject: [PATCH 2/5] fix: remove deplication meme --- src/service/command/meme/test/dousurya.test.ts | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/service/command/meme/test/dousurya.test.ts b/src/service/command/meme/test/dousurya.test.ts index 532b9d1c..64f71a63 100644 --- a/src/service/command/meme/test/dousurya.test.ts +++ b/src/service/command/meme/test/dousurya.test.ts @@ -18,16 +18,6 @@ describe('meme', () => { } ) ); - await responder.on( - createMockMessage( - parseStringsOrThrow(['dousureba', 'こるく'], responder.schema), - (message) => { - expect(message).toStrictEqual({ - description: `限界みたいな鯖に住んでるこるくはどうすりゃいいですか?` - }); - } - ) - ); }); it('args null (dousureba)', async () => { From a526e6ccbcba12055c02fcd9c15831ed953c62fc Mon Sep 17 00:00:00 2001 From: m2en Date: Sat, 24 Dec 2022 21:00:24 +0900 Subject: [PATCH 3/5] fix: fix kopipe --- src/service/command/meme/test/nine.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/service/command/meme/test/nine.test.ts b/src/service/command/meme/test/nine.test.ts index 8425112b..560e5447 100644 --- a/src/service/command/meme/test/nine.test.ts +++ b/src/service/command/meme/test/nine.test.ts @@ -7,7 +7,7 @@ import { parseStringsOrThrow } from '../../../../adaptor/proxy/command/schema.js describe('meme', () => { const responder = new Meme(); - it('use case of dousurya', async () => { + it('use case of nine', async () => { await responder.on( createMockMessage( parseStringsOrThrow(['nine', '限界開発鯖', 'オタク'], responder.schema), @@ -20,7 +20,7 @@ describe('meme', () => { ); }); - it('args null (dousureba)', async () => { + it('args null (nine)', async () => { await responder.on( createMockMessage( parseStringsOrThrow(['nine'], responder.schema), From c563f6b9c19fc7fc43583ea031fcbbe77aa0cd85 Mon Sep 17 00:00:00 2001 From: m2en Date: Sat, 24 Dec 2022 21:04:23 +0900 Subject: [PATCH 4/5] Revert "fix: remove deplication meme" This reverts commit 71a7caa1dd4195727fea5cd92540726c2b85cd51. --- src/service/command/meme/test/dousurya.test.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/service/command/meme/test/dousurya.test.ts b/src/service/command/meme/test/dousurya.test.ts index 64f71a63..532b9d1c 100644 --- a/src/service/command/meme/test/dousurya.test.ts +++ b/src/service/command/meme/test/dousurya.test.ts @@ -18,6 +18,16 @@ describe('meme', () => { } ) ); + await responder.on( + createMockMessage( + parseStringsOrThrow(['dousureba', 'こるく'], responder.schema), + (message) => { + expect(message).toStrictEqual({ + description: `限界みたいな鯖に住んでるこるくはどうすりゃいいですか?` + }); + } + ) + ); }); it('args null (dousureba)', async () => { From 54642e349aa8d3ef33a595d7a39d8baffdbf3293 Mon Sep 17 00:00:00 2001 From: m2en Date: Sat, 24 Dec 2022 21:06:15 +0900 Subject: [PATCH 5/5] docs: add instructions --- src/service/command/meme/test/dousurya.test.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/service/command/meme/test/dousurya.test.ts b/src/service/command/meme/test/dousurya.test.ts index 532b9d1c..5ea8bb2f 100644 --- a/src/service/command/meme/test/dousurya.test.ts +++ b/src/service/command/meme/test/dousurya.test.ts @@ -8,6 +8,10 @@ describe('meme', () => { const responder = new Meme(); it('use case of dousurya', async () => { + /** + * !dousurya と !dousureba のテストケースです。 + * 一見同じように見えるが、違うので重複してたからと削除しないよう注意してほしい + */ await responder.on( createMockMessage( parseStringsOrThrow(['dousurya', 'こるく'], responder.schema),