add test for geoip

This commit is contained in:
undefined committed 2020-08-29 20:23:59 +08:00
1 parent 7651b0a697
commit a8bdfa8f30
7 files changed
+26 -13

No files matched your search

+6 -4
View File
@@ -14,7 +14,7 @@ export interface Result {
display: string display: string
} }
function lookup(ip: string, locale: string) { export function lookup(ip: string, locale: string): any {
const res: any = reader.get(ip); const res: any = reader.get(ip);
if (!res) return {}; if (!res) return {};
const ret: Result = { display: '' }; const ret: Result = { display: '' };
@@ -25,11 +25,13 @@ function lookup(ip: string, locale: string) {
|| (res.country || res.registered_country).names.en; || (res.country || res.registered_country).names.en;
} }
if (res.city) ret.city = res.city.names[locale] || res.city.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; return ret;
} }
global.Hydro.lib.geoip = exports = { export const provider = '<a href="http://www.maxmind.com" target="_blank">MaxMind</a>';
provider: '<a href="http://www.maxmind.com" target="_blank">MaxMind</a>',
global.Hydro.lib.geoip = {
provider,
lookup, lookup,
}; };
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@hydrooj/geoip", "name": "@hydrooj/geoip",
"version": "1.1.7", "version": "1.1.8",
"main": "package.json", "main": "package.json",
"repository": "git@github.com:hydro-dev/Hydro.git", "repository": "git@github.com:hydro-dev/Hydro.git",
"author": "undefined <masnn0@outlook.com>", "author": "undefined <masnn0@outlook.com>",
+9
View File
@@ -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('大洋洲 澳大利亚');
});
});
+1 -1
View File
@@ -55,7 +55,7 @@ export function edit(domainId: string, $set: any) {
return coll.updateOne({ _id: domainId }, { $set }); return coll.updateOne({ _id: domainId }, { $set });
} }
export async function inc(domainId: string, field: any, n: number): Promise<number | null> { export async function inc(domainId: string, field: keyof DomainDoc, n: number): Promise<number | null> {
const res = await coll.findOneAndUpdate( const res = await coll.findOneAndUpdate(
{ _id: domainId }, { _id: domainId },
// FIXME // FIXME
+7 -6
View File
@@ -1,5 +1,4 @@
import 'hydrooj/src/utils'; import 'hydrooj';
jest.mock('hydrooj/src/service/db'); jest.mock('hydrooj/src/service/db');
export async function connect() { export async function connect() {
@@ -13,8 +12,10 @@ export async function connect() {
export async function dispose() { export async function dispose() {
const db = require('hydrooj/src/service/db'); const db = require('hydrooj/src/service/db');
await db.getClient().close(); await Promise.all([
await db.getClient2().close(); db.getClient().close(),
await db.getDb().close(); db.getClient2().close(),
await db.getDb2().close(); db.getDb().close(),
db.getDb2().close(),
]);
} }
+1 -1
View File
@@ -1,8 +1,8 @@
import 'hydrooj'; import 'hydrooj';
import 'hydrooj/src/utils';
import md5 from 'hydrooj/src/lib/md5'; import md5 from 'hydrooj/src/lib/md5';
import sha1 from 'hydrooj/src/lib/sha1'; import sha1 from 'hydrooj/src/lib/sha1';
import pwhash from 'hydrooj/src/lib/hash.hydro'; import pwhash from 'hydrooj/src/lib/hash.hydro';
import 'hydrooj/src/utils';
describe('crypto', () => { describe('crypto', () => {
const content1 = 'twd2akioi'; const content1 = 'twd2akioi';
+1
View File
@@ -16,6 +16,7 @@
"src" "src"
], ],
"exclude": [ "exclude": [
"__mocks__",
"bin", "bin",
"dist" "dist"
] ]