"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"
"@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"
},
[":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",
+++ /dev/null
-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();
-});
--- /dev/null
+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
+ );
+ })
+ );
+});
+++ /dev/null
-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();
-});
--- /dev/null
+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']);
+ });
+});
"baseUrl": "./src",
"paths": {
"*": ["./typings/*"]
- }
+ },
+ "resolveJsonModule": true
},
"include": [
"src/**/*"