From 33f7448048dfbeb3c5960e897e92baa29f8afbab Mon Sep 17 00:00:00 2001
From: Louis Lam <louislam@users.noreply.github.com>
Date: Tue, 5 Sep 2023 02:08:18 +0800
Subject: [PATCH] Don't run worst case test on GitHub Actions (#3688)

* Don't run worst case test on GitHub Actions

* Deprecate jest
---
 test/backend-test/README.md                 | 41 +++++++++++++++++++++
 test/backend-test/test-uptime-calculator.js |  6 +++
 test/backend.spec.js                        |  2 +
 3 files changed, 49 insertions(+)
 create mode 100644 test/backend-test/README.md

diff --git a/test/backend-test/README.md b/test/backend-test/README.md
new file mode 100644
index 000000000..e0a69dda7
--- /dev/null
+++ b/test/backend-test/README.md
@@ -0,0 +1,41 @@
+
+# Node.js Test Runner
+
+Documentation: https://nodejs.org/api/test.html
+
+Create a test file in this directory with the name `*.js`.
+
+
+
+## Template
+
+```js
+const semver = require("semver");
+let test;
+const nodeVersion = process.versions.node;
+if (semver.satisfies(nodeVersion, ">= 18")) {
+    test = require("node:test");
+} else {
+    test = require("test");
+}
+
+const assert = require("node:assert");
+
+test("Test name", async (t) => {
+    assert.strictEqual(1, 1);
+});
+```
+
+## Run 
+
+Node.js >=18
+
+```bash
+npm run test-backend:18
+```
+
+Node.js < 18
+
+```bash
+npm run test-backend:14
+```
diff --git a/test/backend-test/test-uptime-calculator.js b/test/backend-test/test-uptime-calculator.js
index b56ac946d..469904bfa 100644
--- a/test/backend-test/test-uptime-calculator.js
+++ b/test/backend-test/test-uptime-calculator.js
@@ -368,6 +368,12 @@ function memoryUsage() {
 }
 
 test("Worst case", async (t) => {
+
+    // Disable on GitHub Actions, as it is not stable on it
+    if (process.env.GITHUB_ACTIONS) {
+        return;
+    }
+
     console.log("Memory usage before preparation", memoryUsage());
 
     let c = new UptimeCalculator();
diff --git a/test/backend.spec.js b/test/backend.spec.js
index 2035c6840..2f9c2fb42 100644
--- a/test/backend.spec.js
+++ b/test/backend.spec.js
@@ -1,3 +1,5 @@
+// ⚠️⚠️⚠️ Deprecated: Jest is not recommended for testing backend code anymore, please create a new test file in ./test/backend-test which are native Node.js test files.
+
 const { genSecret, DOWN, log} = require("../src/util");
 const utilServer = require("../server/util-server");
 const Discord = require("../server/notification-providers/discord");