diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index eb349e97..9d9befba 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1 @@ -github: [m2en, shun-shobon] +github: [m2en, shun-shobon, su8ru] diff --git a/src/service/command/meme/index.ts b/src/service/command/meme/index.ts index 7d63818e..fcfb3b8c 100644 --- a/src/service/command/meme/index.ts +++ b/src/service/command/meme/index.ts @@ -9,6 +9,7 @@ import { n } from './n.js'; import { nigetane } from './nigetane.js'; import { nine } from './nine.js'; import { ojaru } from './ojaru.js'; +import { syakai } from './syakai.js'; import { takopi } from './takopi.js'; import { tsureteike } from './tsureteike.js'; import { web3 } from './web3.js'; @@ -27,5 +28,6 @@ export const memes = [ ojaru, nine, tsureteike, + syakai, clang ]; diff --git a/src/service/command/meme/syakai.ts b/src/service/command/meme/syakai.ts new file mode 100644 index 00000000..3efab4f6 --- /dev/null +++ b/src/service/command/meme/syakai.ts @@ -0,0 +1,12 @@ +import type { MemeTemplate } from '../../../model/meme-template.js'; + +export const syakai: MemeTemplate = { + commandNames: ['syakai'], + description: '「首相、~に否定的な考え ― 『社会が変わってしまう』」', + flagsKeys: [], + optionsKeys: [], + errorMessage: '極めて慎重に検討すべき課題だ', + generate(args) { + return `「首相、${args.body}に否定的な考え ― 『社会が変わってしまう』」`; + } +}; diff --git a/src/service/command/meme/test/syakai.test.ts b/src/service/command/meme/test/syakai.test.ts new file mode 100644 index 00000000..b76117f9 --- /dev/null +++ b/src/service/command/meme/test/syakai.test.ts @@ -0,0 +1,37 @@ +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 syakai', async () => { + await responder.on( + createMockMessage( + parseStringsOrThrow(['syakai', 'Rust採用'], responder.schema), + (message) => { + expect(message).toStrictEqual({ + description: + '「首相、Rust採用に否定的な考え ― 『社会が変わってしまう』」' + }); + } + ) + ); + }); + + it('args null (syakai)', async () => { + await responder.on( + createMockMessage( + parseStringsOrThrow(['syakai'], responder.schema), + (message) => { + expect(message).toStrictEqual({ + title: '引数が不足してるみたいだ。', + description: '極めて慎重に検討すべき課題だ' + }); + } + ) + ); + }); +});