From 02d7ffd305013d3189c189ac585ca5d6e50c2db6 Mon Sep 17 00:00:00 2001
From: tamaina <tamaina@hotmail.co.jp>
Date: Sun, 26 Feb 2023 11:10:24 +0000
Subject: [PATCH] =?UTF-8?q?fix(server):=20=E5=8D=98=E7=B4=94=E3=81=ABrenot?=
 =?UTF-8?q?e=E3=81=A7=E3=81=8D=E3=81=AA=E3=81=84=E3=81=AE=E3=82=92?=
 =?UTF-8?q?=E4=BF=AE=E6=AD=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../src/server/api/endpoints/notes/create.test.ts | 15 +++++++++++++++
 .../src/server/api/endpoints/notes/create.ts      |  1 +
 2 files changed, 16 insertions(+)

diff --git a/packages/backend/src/server/api/endpoints/notes/create.test.ts b/packages/backend/src/server/api/endpoints/notes/create.test.ts
index 4e5ec361f9..6bff7fc0c9 100644
--- a/packages/backend/src/server/api/endpoints/notes/create.test.ts
+++ b/packages/backend/src/server/api/endpoints/notes/create.test.ts
@@ -235,6 +235,21 @@ describe('api:notes/create', () => {
 			});
 		});
 
+		describe('renote', () => {
+			test('just a renote', () => {
+				expect(v({ renoteId: '1' }))
+					.toBe(VALID);
+			});
+			test('just a quote', () => {
+				expect(v({ text: 'Hello, world!', renoteId: '1' }))
+					.toBe(VALID);
+			});
+			test('reject invalid renoteId', () => {
+				expect(v({ renoteId: 'あ' }))
+					.toBe(INVALID);
+			});
+		});
+
 		test('text, fileIds and poll', () => {
 			expect(v({ text: 'Hello, world!', fileIds: ['1', '2', '3'], poll: { choices: ['a', 'b', 'c'] } }))
 				.toBe(VALID);
diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts
index 2848cd7df1..786ad103b0 100644
--- a/packages/backend/src/server/api/endpoints/notes/create.ts
+++ b/packages/backend/src/server/api/endpoints/notes/create.ts
@@ -147,6 +147,7 @@ export const paramDef = {
 	// (re)note with text, files and poll are optional
 	anyOf: [
 		{ required: ['text'] },
+		{ required: ['renoteId'] },
 		{ required: ['fileIds'] },
 		{ required: ['mediaIds'] },
 		{ required: ['poll'] },