From e6c97183e33dd448722a264a7e66f9a5923256eb Mon Sep 17 00:00:00 2001 From: m2en Date: Wed, 8 Feb 2023 01:29:55 +0900 Subject: [PATCH 1/4] feat: add new cLang meme --- src/service/command/meme/c-lang.ts | 13 +++++++++++++ src/service/command/meme/index.ts | 4 +++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 src/service/command/meme/c-lang.ts diff --git a/src/service/command/meme/c-lang.ts b/src/service/command/meme/c-lang.ts new file mode 100644 index 00000000..0be5b57b --- /dev/null +++ b/src/service/command/meme/c-lang.ts @@ -0,0 +1,13 @@ +import type {MemeTemplate} from "../../../model/meme-template.js"; + +export const cLang: MemeTemplate = { + commandNames: ["clang", "c"], + description: "〜の天才\n9つの〜を操る", + flagsKeys: [], + optionsKeys: [], + errorMessage: 'memeの天才\n9つの構文を操る', + generate(args) { + const [option1, option2] = args.body.split(' ') + return `${option1}の天才\n9つの${option2}を操る` + } +} diff --git a/src/service/command/meme/index.ts b/src/service/command/meme/index.ts index fc492ead..a0fb579b 100644 --- a/src/service/command/meme/index.ts +++ b/src/service/command/meme/index.ts @@ -1,3 +1,4 @@ +import { cLang } from './c-lang.js'; import { dousurya } from './dousurya.js'; import { hukueki } from './hukueki.js'; import { kenjou } from './kenjou.js'; @@ -25,5 +26,6 @@ export const memes = [ koume, ojaru, nine, - tsureteike + tsureteike, + cLang ]; From 5b4b29b886bcbb53eb29195c1d77a625329c2855 Mon Sep 17 00:00:00 2001 From: m2en Date: Wed, 8 Feb 2023 01:37:17 +0900 Subject: [PATCH 2/4] test: cLang meme test-case --- src/service/command/meme/test/c-lang.test.ts | 36 ++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/service/command/meme/test/c-lang.test.ts diff --git a/src/service/command/meme/test/c-lang.test.ts b/src/service/command/meme/test/c-lang.test.ts new file mode 100644 index 00000000..d83ce47f --- /dev/null +++ b/src/service/command/meme/test/c-lang.test.ts @@ -0,0 +1,36 @@ +import { describe, expect, it } from 'vitest'; + +import { parseStringsOrThrow } from '../../../../adaptor/proxy/command/schema.js'; +import { createMockMessage } from '../../command-message.js'; +import { Meme } from '../../meme.js'; + +describe('meme', () => { + const responder = new Meme(); + + it('use case of clang', async () => { + await responder.on( + createMockMessage( + parseStringsOrThrow(['clang', 'GitHub', 'ラベル'], responder.schema), + (message) => { + expect(message).toStrictEqual({ + description: 'GitHubの天才\n9つのラベルを操る' + }); + } + ) + ); + }); + + it('args null (clang)', async () => { + await responder.on( + createMockMessage( + parseStringsOrThrow(['clang'], responder.schema), + (message) => { + expect(message).toStrictEqual({ + title: '引数が不足してるみたいだ。', + description: 'エラーの天才\n9つの引数エラーを操る' + }); + } + ) + ); + }); +}); From d2bcd401b5ee8fc31bae05cf5dc7cbd75fb1f366 Mon Sep 17 00:00:00 2001 From: m2en Date: Wed, 8 Feb 2023 01:37:49 +0900 Subject: [PATCH 3/4] chore: change error message --- src/service/command/meme/c-lang.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/service/command/meme/c-lang.ts b/src/service/command/meme/c-lang.ts index 0be5b57b..654b2b3f 100644 --- a/src/service/command/meme/c-lang.ts +++ b/src/service/command/meme/c-lang.ts @@ -1,13 +1,13 @@ -import type {MemeTemplate} from "../../../model/meme-template.js"; +import type { MemeTemplate } from '../../../model/meme-template.js'; export const cLang: MemeTemplate = { - commandNames: ["clang", "c"], - description: "〜の天才\n9つの〜を操る", - flagsKeys: [], - optionsKeys: [], - errorMessage: 'memeの天才\n9つの構文を操る', - generate(args) { - const [option1, option2] = args.body.split(' ') - return `${option1}の天才\n9つの${option2}を操る` - } -} + commandNames: ['clang', 'c'], + description: '〜の天才\n9つの〜を操る', + flagsKeys: [], + optionsKeys: [], + errorMessage: 'エラーの天才\n9つの引数エラーを操る', + generate(args) { + const [option1, option2] = args.body.split(' '); + return `${option1}の天才\n9つの${option2}を操る`; + } +}; From f0037455878f2a43d1e28f6fdd79c113bf8e4955 Mon Sep 17 00:00:00 2001 From: m2en Date: Wed, 8 Feb 2023 02:02:06 +0900 Subject: [PATCH 4/4] chore: rename files name --- src/service/command/meme/{c-lang.ts => clang.ts} | 2 +- src/service/command/meme/index.ts | 4 ++-- .../command/meme/test/{c-lang.test.ts => clang.test.ts} | 0 3 files changed, 3 insertions(+), 3 deletions(-) rename src/service/command/meme/{c-lang.ts => clang.ts} (88%) rename src/service/command/meme/test/{c-lang.test.ts => clang.test.ts} (100%) diff --git a/src/service/command/meme/c-lang.ts b/src/service/command/meme/clang.ts similarity index 88% rename from src/service/command/meme/c-lang.ts rename to src/service/command/meme/clang.ts index 654b2b3f..0b62b076 100644 --- a/src/service/command/meme/c-lang.ts +++ b/src/service/command/meme/clang.ts @@ -1,6 +1,6 @@ import type { MemeTemplate } from '../../../model/meme-template.js'; -export const cLang: MemeTemplate = { +export const clang: MemeTemplate = { commandNames: ['clang', 'c'], description: '〜の天才\n9つの〜を操る', flagsKeys: [], diff --git a/src/service/command/meme/index.ts b/src/service/command/meme/index.ts index a0fb579b..7d63818e 100644 --- a/src/service/command/meme/index.ts +++ b/src/service/command/meme/index.ts @@ -1,4 +1,4 @@ -import { cLang } from './c-lang.js'; +import { clang } from './clang.js'; import { dousurya } from './dousurya.js'; import { hukueki } from './hukueki.js'; import { kenjou } from './kenjou.js'; @@ -27,5 +27,5 @@ export const memes = [ ojaru, nine, tsureteike, - cLang + clang ]; diff --git a/src/service/command/meme/test/c-lang.test.ts b/src/service/command/meme/test/clang.test.ts similarity index 100% rename from src/service/command/meme/test/c-lang.test.ts rename to src/service/command/meme/test/clang.test.ts