Skip to content
This repository was archived by the owner on Jul 6, 2022. It is now read-only.

Commit c1fd4d7

Browse files
committed
fixing scans; making only igb polls update member timestamps; fixing some tests.
1 parent 4c9ae7e commit c1fd4d7

4 files changed

Lines changed: 41 additions & 25 deletions

File tree

‎server/controllers/fleet.js‎

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ exports.join = function(req, res, next){
2323
}
2424

2525
var member = Member.prepare(fleet.key, req.session.fleet);
26-
var event = Event.prepare('memberJoined', fleet.key, member);
26+
var event = Event.prepare('memberJoined', fleet.key, member.toObject());
2727

2828
member.saveQ()
2929
.then(function(member) {
@@ -58,7 +58,7 @@ exports.leave = function(req, res, next){
5858

5959
Member.findOneQ({key: key})
6060
.then(function(member) {
61-
var event = Event.prepare('memberLeft', member.fleetKey, member)
61+
var event = Event.prepare('memberLeft', member.fleetKey, member.toObject())
6262
event.saveQ();
6363
member.removeQ();
6464

@@ -75,31 +75,31 @@ exports.leave = function(req, res, next){
7575
exports.status = function(req, res, next) {
7676
if (!req.session.fleetKey || !req.session.memberKey) {
7777
var self = Member.prepare('none', header_parser(req))
78-
var event = Event.prepare('statusSelf', 'none', self)
78+
var event = Event.prepare('statusSelf', 'none', self.toObject())
7979

8080
return response.success(res, [ event ]);
8181
}
8282

8383
Member.findOneQ({key: req.session.memberKey})
8484
.then(function(member) {
8585
var events = [];
86-
events.push( Event.prepare('statusSelf', member.fleetKey, member) );
86+
events.push( Event.prepare('statusSelf', member.fleetKey, member.toObject()) );
8787

8888
var tasks = [
8989
Fleet.findOne({key: member.fleetKey}).execQ().then(function(fleet) {
90-
return Event.prepare('statusFleet', member.fleetKey, fleet);
90+
return Event.prepare('statusFleet', member.fleetKey, fleet.toObject());
9191
}),
9292
Event.find({fleetKey: member.fleetKey}).execQ().then(function(events) {
93-
return Event.prepare('statusEvents', member.fleetKey, events);
93+
return Event.prepare('statusEvents', member.fleetKey, _.map(events, function(event) { return event.toObject(); }));
9494
}),
9595
Member.find({fleetKey: member.fleetKey}).execQ().then(function(members) {
96-
return Event.prepare('statusMembers', member.fleetKey, members);
96+
return Event.prepare('statusMembers', member.fleetKey, _.map(members, function(member) { return member.toObject(); }));
9797
}),
9898
Hostile.find({fleetKey: member.fleetKey}).execQ().then(function(hostiles) {
99-
return Event.prepare('statusHostiles', member.fleetKey, hostiles);
99+
return Event.prepare('statusHostiles', member.fleetKey, _.map(hostiles, function(hostile) { return hostile.toObject(); }));
100100
}),
101101
Scan.find({fleetKey: member.fleetKey}).execQ().then(function(scans) {
102-
return Event.prepare('statusScans', member.fleetKey, scans);
102+
return Event.prepare('statusScans', member.fleetKey, _.map(scans, function(scan) { return scan.toObject(); }));
103103
})
104104
];
105105

@@ -133,7 +133,6 @@ exports.poll = function(req, res, next) {
133133
var self = req.session.fleet;
134134
var previous = _.clone(member.toObject())
135135

136-
member.ts = moment().unix();
137136
member.shipType = self.shipType;
138137
member.shipTypeId = self.shipTypeId;
139138
member.systemName = self.systemName;
@@ -150,10 +149,10 @@ exports.poll = function(req, res, next) {
150149
req.session.linked.isLinked = true;
151150
member.isLinked = true;
152151
} else {
153-
var event = Event.prepare('memberUpdated', req.session.fleetKey, member);
152+
var event = Event.prepare('memberUpdated', req.session.fleetKey, member.toObject());
154153
events.push(event);
155154
event.saveQ();
156-
member.saveQ();
155+
157156
}
158157

159158
if (!previous.isDocked && !member.isDocked) {
@@ -184,6 +183,11 @@ exports.poll = function(req, res, next) {
184183
}
185184
}
186185

186+
if ( !req.session.linked ) {
187+
member.ts = moment().unix();
188+
member.saveQ();
189+
}
190+
187191
return events;
188192
}),
189193
Event.find({fleetKey: req.session.fleetKey, ts: { $lte: moment().unix(), $gte: +req.params.lastPollTs }})
@@ -231,7 +235,7 @@ exports.create = function(req, res, next) {
231235
})
232236
.then(function(result) {
233237
member.link_to_session(req.session);
234-
response.success(res, Event.prepare('fleetCreated', 'none', fleet));
238+
response.success(res, Event.prepare('fleetCreated', 'none', fleet.toObject()));
235239
})
236240
.catch(function(error) {
237241
console.log(error)
@@ -248,7 +252,7 @@ exports.report = function(req, res, next) {
248252
if (report.text === 'clear') {
249253
Hostile.removeQ({systemId: report.systemId})
250254
.then(function(hostile) {
251-
var event = Event.prepare('reportClear', report.fleetKey, report);
255+
var event = Event.prepare('reportClear', report.fleetKey, report.toObject());
252256
event.saveQ();
253257

254258
return response.success(res, event);
@@ -315,7 +319,7 @@ exports.add_scan = function(req, res, next) {
315319
if (!scan.shipTypes.length) return response.error(res, 'report', 'Invalid scan data.');
316320
if (!scan.shipClasses.length) return response.error(res, 'report', 'Invalid scan data.');
317321

318-
var event = Event.prepare('scanPosted', reporter.fleetKey, scan);
322+
var event = Event.prepare('scanPosted', reporter.fleetKey, scan.toObject());
319323
scan.saveQ();
320324
event.saveQ();
321325

@@ -345,7 +349,7 @@ exports.update_hostile = function(req, res, next) {
345349
hostile.reporterId = req.session.fleet.characterId;
346350
hostile.reporterName = req.session.fleet.characterName;
347351

348-
var event = Event.prepare('updateHostile', req.session.fleetKey, hostile);
352+
var event = Event.prepare('updateHostile', req.session.fleetKey, hostile.toObject());
349353

350354
hostile.saveQ();
351355
event.saveQ();

‎server/controllers/scans.js‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,25 @@ exports.show = function(req, res, next) {
1414
return scan.toObject();
1515
})
1616
.then(function(scan) {
17+
debugger
1718
System.findOneQ({id: scan.systemId})
1819
.then(function(system) {
20+
if (!system) throw 'Error looking up system'
1921
return [ scan, system.toObject() ];
2022
})
2123
.spread(function(scan, system) {
24+
debugger
2225
Region.findOneQ({id: system.regionID})
2326
.then(function(region) {
27+
if (!region) throw 'Error looking up region'
2428
return res.render('scans', {timestamp: moment.unix(scan.ts).format('lll'), scan: scan, region: region, system: system});
2529
})
2630
})
31+
.catch(function(error) {
32+
console.log(error)
33+
return res.render('scans', {error: 'Invalid Scan ID'});
34+
})
35+
.done();
2736
})
2837
.catch(function(error) {
2938
console.log(error)

‎test/application-link.js‎

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,8 @@ describe('Application: Link', function() {
128128
if (err) return done(err);
129129
res.text.should.match(/Link Session To Pilot/);
130130
res.text.should.match(/Hello, tarei/);
131-
res.text.should.match(pilot_key);
131+
var pilot_key_regex = new RegExp(pilot_key, 'g');
132+
res.text.should.match(pilot_key_regex);
132133

133134
done();
134135
});
@@ -167,8 +168,8 @@ describe('Application: Link', function() {
167168
if (err) return done(err);
168169
res.body.success.should.be.ok;
169170
res.body.should.have.property('events').with.lengthOf(2);
170-
// res.body.events[0].should.have.property('type', 'memberUpdated');
171-
// res.body.events[1].should.have.property('type', 'updateSystemMap');
171+
res.body.events[0].should.have.property('type', 'memberUpdated');
172+
res.body.events[1].should.have.property('type', 'updateSystemMap');
172173

173174
done();
174175
});
@@ -182,8 +183,8 @@ describe('Application: Link', function() {
182183
if (err) return done(err);
183184
res.body.success.should.be.ok;
184185
res.body.should.have.property('events').with.lengthOf(2);
185-
// res.body.events[0].should.have.property('type', 'memberUpdated');
186-
// res.body.events[1].should.have.property('type', 'updateSystemMap');
186+
res.body.events[0].should.have.property('type', 'memberUpdated');
187+
res.body.events[1].should.have.property('type', 'updateSystemMap');
187188

188189
done();
189190
});
@@ -259,7 +260,8 @@ describe('Application: Link', function() {
259260
if (err) return done(err);
260261
res.text.should.match(/Link Session To Pilot/);
261262
res.text.should.match(/Hello, tarei/);
262-
res.text.should.match(pilot_key);
263+
var pilot_key_regex = new RegExp(pilot_key, 'g');
264+
res.text.should.match(pilot_key_regex);
263265

264266
done();
265267
});
@@ -274,8 +276,9 @@ describe('Application: Link', function() {
274276
if (err) return done(err);
275277
res.text.should.match(/Link Session To Pilot/)
276278
res.text.should.match(/Hello, tarei/)
277-
res.text.should.not.match(pilot_key);
278-
279+
var pilot_key_regex = new RegExp(pilot_key, 'g');
280+
res.text.should.not.match(pilot_key_regex);
281+
279282
done();
280283
});
281284
})

‎test/server.js‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ describe('Server', function() {
5858
it('should handle static login view', function(done) {
5959
request(url)
6060
.get('/login')
61-
.expect(200)
61+
.expect(302)
6262
.end(function(err, res) {
6363
if (err) return done(err);
6464
res.text.should.match(/Goonfleet ESA Login/)

0 commit comments

Comments
 (0)