From a8bdfa8f302618070d88c81b998bc80e3839917e Mon Sep 17 00:00:00 2001 From: undefined Date: Sat, 29 Aug 2020 20:23:59 +0800 Subject: [PATCH] add test for geoip --- packages/geoip/lib.ts | 10 ++++++---- packages/geoip/package.json | 2 +- packages/geoip/test/lib.spec.ts | 9 +++++++++ packages/hydrooj/src/model/domain.ts | 2 +- packages/hydrooj/test/db.ts | 13 +++++++------ packages/hydrooj/test/lib.crypto.spec.ts | 2 +- packages/hydrooj/tsconfig.json | 1 + 7 files changed, 26 insertions(+), 13 deletions(-) create mode 100644 packages/geoip/test/lib.spec.ts diff --git a/packages/geoip/lib.ts b/packages/geoip/lib.ts index fe6e3fbd3..20f270b4e 100644 --- a/packages/geoip/lib.ts +++ b/packages/geoip/lib.ts @@ -14,7 +14,7 @@ export interface Result { display: string } -function lookup(ip: string, locale: string) { +export function lookup(ip: string, locale: string): any { const res: any = reader.get(ip); if (!res) return {}; const ret: Result = { display: '' }; @@ -25,11 +25,13 @@ function lookup(ip: string, locale: string) { || (res.country || res.registered_country).names.en; } if (res.city) ret.city = res.city.names[locale] || res.city.names.en; - ret.display = `${ret.continent} ${ret.country} ${ret.city}`; + ret.display = `${ret.continent} ${ret.country}${ret.city ? ` ${ret.city}` : ''}`; return ret; } -global.Hydro.lib.geoip = exports = { - provider: 'MaxMind', +export const provider = 'MaxMind'; + +global.Hydro.lib.geoip = { + provider, lookup, }; diff --git a/packages/geoip/package.json b/packages/geoip/package.json index e5b4f7f64..3104ed5d6 100644 --- a/packages/geoip/package.json +++ b/packages/geoip/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/geoip", - "version": "1.1.7", + "version": "1.1.8", "main": "package.json", "repository": "git@github.com:hydro-dev/Hydro.git", "author": "undefined ", diff --git a/packages/geoip/test/lib.spec.ts b/packages/geoip/test/lib.spec.ts new file mode 100644 index 000000000..2e9f2681d --- /dev/null +++ b/packages/geoip/test/lib.spec.ts @@ -0,0 +1,9 @@ +jest.mock('hydrooj/src/loader'); +import * as lib from '@hydrooj/geoip/lib'; + +describe('geoip', () => { + test('MD5', () => { + expect(lib.lookup('127.0.0.1', 'zh_CN')).toStrictEqual({}); + expect(lib.lookup('1.1.1.1', 'zh-CN').display).toStrictEqual('大洋洲 澳大利亚'); + }); +}); diff --git a/packages/hydrooj/src/model/domain.ts b/packages/hydrooj/src/model/domain.ts index 2ecef837b..905432a25 100644 --- a/packages/hydrooj/src/model/domain.ts +++ b/packages/hydrooj/src/model/domain.ts @@ -55,7 +55,7 @@ export function edit(domainId: string, $set: any) { return coll.updateOne({ _id: domainId }, { $set }); } -export async function inc(domainId: string, field: any, n: number): Promise { +export async function inc(domainId: string, field: keyof DomainDoc, n: number): Promise { const res = await coll.findOneAndUpdate( { _id: domainId }, // FIXME diff --git a/packages/hydrooj/test/db.ts b/packages/hydrooj/test/db.ts index 4cc20d434..319b29a76 100644 --- a/packages/hydrooj/test/db.ts +++ b/packages/hydrooj/test/db.ts @@ -1,5 +1,4 @@ -import 'hydrooj/src/utils'; - +import 'hydrooj'; jest.mock('hydrooj/src/service/db'); export async function connect() { @@ -13,8 +12,10 @@ export async function connect() { export async function dispose() { const db = require('hydrooj/src/service/db'); - await db.getClient().close(); - await db.getClient2().close(); - await db.getDb().close(); - await db.getDb2().close(); + await Promise.all([ + db.getClient().close(), + db.getClient2().close(), + db.getDb().close(), + db.getDb2().close(), + ]); } diff --git a/packages/hydrooj/test/lib.crypto.spec.ts b/packages/hydrooj/test/lib.crypto.spec.ts index 526ad49e3..cec6a2cef 100644 --- a/packages/hydrooj/test/lib.crypto.spec.ts +++ b/packages/hydrooj/test/lib.crypto.spec.ts @@ -1,8 +1,8 @@ import 'hydrooj'; +import 'hydrooj/src/utils'; import md5 from 'hydrooj/src/lib/md5'; import sha1 from 'hydrooj/src/lib/sha1'; import pwhash from 'hydrooj/src/lib/hash.hydro'; -import 'hydrooj/src/utils'; describe('crypto', () => { const content1 = 'twd2akioi'; diff --git a/packages/hydrooj/tsconfig.json b/packages/hydrooj/tsconfig.json index 76a66de32..b7bb74453 100644 --- a/packages/hydrooj/tsconfig.json +++ b/packages/hydrooj/tsconfig.json @@ -16,6 +16,7 @@ "src" ], "exclude": [ + "__mocks__", "bin", "dist" ]