]> jfr.im git - irc/evilnet/node-irc-nefarious.git/commitdiff
Replace tape/tap with Jest
authorHalf-Shot <redacted>
Mon, 15 May 2023 13:13:10 +0000 (14:13 +0100)
committerHalf-Shot <redacted>
Mon, 15 May 2023 13:13:10 +0000 (14:13 +0100)
package.json
test/data/fixtures.json
test/test-parse-line.js [deleted file]
test/test-parse-line.spec.ts [new file with mode: 0644]
test/test-split-messages.js [deleted file]
test/test-split-messages.spec.ts [new file with mode: 0644]
tsconfig.json

index e5668e4eb73f4b1c15181490ec8342a8b96d5b3a..023b5b47d43380ae4a45390399301df529f5f64e 100644 (file)
@@ -7,8 +7,9 @@
     "prepare": "yarn run build",
     "build": "tsc --project tsconfig.json",
     "lint": "eslint -c .eslintrc --max-warnings 0 'src/**/*.ts'",
-    "test": "tap ./test/test-*.js",
-    "test:integration": "jest"
+    "test": "yarn test:unit # alias for the moment",
+    "test:unit": "jest test/*",
+    "test:integration": "jest spec/*"
   },
   "contributors": [
     "node-irc contributors"
@@ -39,8 +40,6 @@
     "@typescript-eslint/parser": "^5.59.1",
     "eslint": "^8.39.0",
     "jest": "^29.5.0",
-    "tap": "^16.3.4",
-    "tape": "^5.6.3",
     "ts-jest": "^29.1.0",
     "typescript": "^5.0.4"
   },
index b6fc871ac2021e876958dcf8d45398c701ab4eae..8478ba3208bfb615a213773ac8dfed0a56d650d6 100644 (file)
@@ -23,7 +23,7 @@
                        [":localhost 001 testbot :Welcome to the Internet Relay Chat Network testbot\r\n\r\n", "Received welcome message"]
                ]
        },
-       "parse-line": {
+       "parseline": {
                ":irc.dollyfish.net.nz 372 nodebot :The message of the day was last changed: 2012-6-16 23:57": {
                        "prefix": "irc.dollyfish.net.nz",
                        "server": "irc.dollyfish.net.nz",
diff --git a/test/test-parse-line.js b/test/test-parse-line.js
deleted file mode 100644 (file)
index 12d0db3..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-const { parseMessage } = require('../lib/parse_message');
-const test = require('tape');
-
-const testHelpers = require('./helpers');
-
-test('irc.parseMessage', function(t) {
-    const checks = testHelpers.getFixtures('parse-line');
-
-    Object.keys(checks).forEach(function(line) {
-        let stripColors = false;
-        if (checks[line].hasOwnProperty('stripColors')) {
-            stripColors = checks[line].stripColors;
-            delete checks[line].stripColors;
-        }
-        t.deepEqual(
-            checks[line],
-            parseMessage(line, stripColors),
-            line + ' parses correctly'
-        );
-    });
-    t.end();
-});
diff --git a/test/test-parse-line.spec.ts b/test/test-parse-line.spec.ts
new file mode 100644 (file)
index 0000000..2bdddbe
--- /dev/null
@@ -0,0 +1,22 @@
+import { parseMessage } from "../src";
+import { parseline } from "./data/fixtures.json";
+import { describe, test, expect } from "@jest/globals";
+
+describe('parseMessage', () => {
+    Object.entries(parseline).forEach(([line, resultWithOpts]) => 
+        test(`can parse '${line}'`, () => {
+            const result: typeof resultWithOpts&{stripColors?: boolean} = resultWithOpts;
+            let stripColors = false;
+            if ('stripColors' in result) {
+                stripColors = result.stripColors ?? false;
+                delete result.stripColors;
+            }
+
+            expect(
+                parseMessage(line, stripColors)
+            ).toEqual(
+                result
+            );
+        })
+    );
+});
diff --git a/test/test-split-messages.js b/test/test-split-messages.js
deleted file mode 100644 (file)
index 366ed29..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-const { Client } = require('../lib/irc');
-const test = require('tape');
-
-test('irc.Client.getSplitMessages', function(t) {
-    const client = new Client('localhost', 'test', { autoConnect: false });
-    t.deepEqual(client.getSplitMessages('#chan', 'foo\nbar\nbaz'),     ['foo', 'bar', 'baz']);
-    t.deepEqual(client.getSplitMessages('#chan', 'foo\r\nbar\r\nbaz'), ['foo', 'bar', 'baz']);
-    t.deepEqual(client.getSplitMessages('#chan', 'foo\rbar\rbaz'),     ['foo', 'bar', 'baz']);
-    t.end();
-});
diff --git a/test/test-split-messages.spec.ts b/test/test-split-messages.spec.ts
new file mode 100644 (file)
index 0000000..c08bfa2
--- /dev/null
@@ -0,0 +1,11 @@
+import { test, expect, describe } from '@jest/globals';
+import { Client } from '../src';
+
+describe('Client', () => {
+    test('can split messages', () => {
+        const client = new Client('localhost', 'test', { autoConnect: false });
+        expect(client.getSplitMessages('#chan', 'foo\nbar\nbaz')).toEqual(['foo', 'bar', 'baz']);
+        expect(client.getSplitMessages('#chan', 'foo\r\nbar\r\nbaz')).toEqual(['foo', 'bar', 'baz']);
+        expect(client.getSplitMessages('#chan', 'foo\rbar\rbaz')).toEqual(['foo', 'bar', 'baz']);
+    });
+});
index 7e147f17e8eb7b8273224bcf57edf91b01a89e1d..6ab083b867f5b343e7dec6e4d2935ce071c21515 100644 (file)
@@ -15,7 +15,8 @@
       "baseUrl": "./src",
       "paths": {
         "*": ["./typings/*"]
-      }
+      },
+      "resolveJsonModule": true
     },
     "include": [
       "src/**/*"