Skip to content

Commit 65cefdf

Browse files
committed
allow setting Mongo location using MONGO_URI
1 parent 557b66c commit 65cefdf

4 files changed

Lines changed: 21 additions & 3 deletions

File tree

src/server/db.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export class Mongo {
6666
*/
6767
constructor({ url, dbname, cacheSize, mockClient }) {
6868
if (cacheSize === undefined) cacheSize = 1000;
69+
if (dbname === undefined) dbname = 'bgio';
6970

7071
this.client = mockClient || MongoClient;
7172
this.url = url;

src/server/db.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ test('Mongo', async () => {
7676
}
7777

7878
{
79-
const db = new Mongo({ url: 'a' });
79+
const db = new Mongo({ url: 'a', dbname: 'test' });
8080
expect(db.client).toBeDefined();
81+
expect(db.dbname).toBe('test');
8182
}
8283
});

src/server/index.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
const Koa = require('koa');
1010
const IO = require('koa-socket');
1111
const Redux = require('redux');
12-
import { InMemory } from './db';
12+
import { InMemory, Mongo } from './db';
1313
import { createGameReducer } from '../core/reducer';
1414
const PING_TIMEOUT = 20 * 1e3;
1515
const PING_INTERVAL = 10 * 1e3;
@@ -26,7 +26,11 @@ export function Server({ games, db, _clientInfo, _roomInfo }) {
2626
io.attach(app);
2727

2828
if (db === undefined) {
29-
db = new InMemory();
29+
if (process.env.MONGO_URI) {
30+
db = new Mongo({ url: process.env.MONGO_URI });
31+
} else {
32+
db = new InMemory();
33+
}
3034
}
3135

3236
const clientInfo = _clientInfo || new Map();
@@ -131,6 +135,7 @@ export function Server({ games, db, _clientInfo, _roomInfo }) {
131135

132136
return {
133137
app,
138+
db,
134139
run: async (port, callback) => {
135140
await db.connect();
136141
app.listen(port, callback);

src/server/index.test.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ import Game from '../core/game';
1111
import * as ActionCreators from '../core/action-creators';
1212
import * as Redux from 'redux';
1313

14+
beforeEach(() => {
15+
jest.resetModules();
16+
});
17+
1418
jest.mock('koa-socket', () => {
1519
class MockSocket {
1620
constructor() {
@@ -278,3 +282,10 @@ test('custom db implementation', async () => {
278282
await io.socket.receive('sync', 'gameID');
279283
expect(getId).toBe('gameID');
280284
});
285+
286+
test('MONGO_URI', () => {
287+
process.env.MONGO_URI = 'test';
288+
const server = Server({ games: [game] });
289+
expect(server.db.url).toBe('test');
290+
delete process.env.MONGO_URI;
291+
});

0 commit comments

Comments
 (0)