From 08ac081b37cd6115634e8951608116fe0f13032b Mon Sep 17 00:00:00 2001
From: Kimsible <kimsible@users.noreply.github.com>
Date: Wed, 28 Apr 2021 18:26:26 +0200
Subject: [PATCH] Add test for API actors route

---
 server/tests/api/check-params/actors.ts | 37 +++++++++++++++++++++++++
 shared/extra-utils/actors/actors.ts     | 18 ++++++++++++
 shared/extra-utils/index.ts             |  1 +
 3 files changed, 56 insertions(+)
 create mode 100644 server/tests/api/check-params/actors.ts
 create mode 100644 shared/extra-utils/actors/actors.ts

diff --git a/server/tests/api/check-params/actors.ts b/server/tests/api/check-params/actors.ts
new file mode 100644
index 000000000..3a03edc39
--- /dev/null
+++ b/server/tests/api/check-params/actors.ts
@@ -0,0 +1,37 @@
+/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
+
+import 'mocha'
+
+import { cleanupTests, flushAndRunServer, ServerInfo } from '../../../../shared/extra-utils'
+import { getActor } from '../../../../shared/extra-utils/actors/actors'
+import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
+
+describe('Test actors API validators', function () {
+  let server: ServerInfo
+
+  // ---------------------------------------------------------------
+
+  before(async function () {
+    this.timeout(30000)
+
+    server = await flushAndRunServer(1)
+  })
+
+  describe('When getting an actor', function () {
+    it('Should return 404 with a non existing actorName', async function () {
+      await getActor(server.url, 'arfaze', HttpStatusCode.NOT_FOUND_404)
+    })
+
+    it('Should return 200 with an existing accountName', async function () {
+      await getActor(server.url, 'root', HttpStatusCode.OK_200)
+    })
+
+    it('Should return 200 with an existing channelName', async function () {
+      await getActor(server.url, 'root_channel', HttpStatusCode.OK_200)
+    })
+  })
+
+  after(async function () {
+    await cleanupTests([ server ])
+  })
+})
diff --git a/shared/extra-utils/actors/actors.ts b/shared/extra-utils/actors/actors.ts
new file mode 100644
index 000000000..4a4aba775
--- /dev/null
+++ b/shared/extra-utils/actors/actors.ts
@@ -0,0 +1,18 @@
+/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
+
+import { makeGetRequest } from '../requests/requests'
+import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
+
+function getActor (url: string, actorName: string, statusCodeExpected = HttpStatusCode.OK_200) {
+  const path = '/api/v1/actors/' + actorName
+
+  return makeGetRequest({
+    url,
+    path,
+    statusCodeExpected
+  })
+}
+
+export {
+  getActor
+}
diff --git a/shared/extra-utils/index.ts b/shared/extra-utils/index.ts
index 898a92d43..5c520d0c2 100644
--- a/shared/extra-utils/index.ts
+++ b/shared/extra-utils/index.ts
@@ -1,3 +1,4 @@
+export * from './actors/actors'
 export * from './bulk/bulk'
 export * from './cli/cli'
 export * from './feeds/feeds'