summary refs log tree commit diff homepage
path: root/tests/MinecraftHandler.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tests/MinecraftHandler.test.ts')
-rw-r--r--tests/MinecraftHandler.test.ts47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/MinecraftHandler.test.ts b/tests/MinecraftHandler.test.ts
new file mode 100644
index 0000000..4bb10f4
--- /dev/null
+++ b/tests/MinecraftHandler.test.ts
@@ -0,0 +1,47 @@
+import MinecraftHandler from '../src/MinecraftHandler'
+
+import { defaultConfig } from './constants'
+
+describe('MinecraftHandler', () => {
+  test('parses player join connection stat', () => {
+    const handler = new MinecraftHandler(defaultConfig)
+
+    const { message } = handler['parseLogLine']('[Server thread/INFO]: destruc7i0n joined the game')!
+    
+    expect(message).toBe('destruc7i0n joined the game')
+  })
+
+  test('parses player leave connection stat', () => {
+    const handler = new MinecraftHandler(defaultConfig)
+
+    const { message } = handler['parseLogLine']('[Server thread/INFO]: destruc7i0n left the game')!
+    
+    expect(message).toBe('destruc7i0n left the game')
+  })
+
+  test('parses death messages', () => {
+    const handler = new MinecraftHandler(defaultConfig)
+
+    const tests = [
+      '[Server thread/INFO]: destruc7i0n drowned',
+      '[Server thread/INFO]: destruc7i0n died',
+      '[Server thread/INFO]: destruc7i0n experienced kinetic energy',
+      '[Server thread/INFO]: destruc7i0n blew up',
+      '[Server thread/INFO]: destruc7i0n hit the ground too hard',
+      '[Server thread/INFO]: destruc7i0n fell off a ladder',
+      '[Server thread/INFO]: destruc7i0n was squashed by a falling anvil',
+      '[Server thread/INFO]: destruc7i0n went off with a bang',
+      '[Server thread/INFO]: destruc7i0n tried to swim in lava',
+      '[Server thread/INFO]: destruc7i0n was slain by mcfunction',
+      '[Server thread/INFO]: destruc7i0n suffocated in a wall',
+      '[Server thread/INFO]: destruc7i0n fell out of the world',
+      '[Server thread/INFO]: destruc7i0n withered away',
+    ]
+
+    for (const test of tests) {
+      const { message } = handler['parseLogLine'](test)!
+
+      expect(message).toBe(test.replace('[Server thread/INFO]: ', ''))
+    }
+  })
+})
\ No newline at end of file