@google-cloud/agones-sdk 1.18.0 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -26,5 +26,5 @@
26
26
  "publishConfig": {
27
27
  "access": "public"
28
28
  },
29
- "version": "1.18.0"
29
+ "version": "1.20.0"
30
30
  }
@@ -249,35 +249,27 @@ describe('AgonesSDK', () => {
249
249
  serverStream.emit('data', gameServer);
250
250
 
251
251
  expect(callback).toHaveBeenCalled();
252
- let result = callback.calls.argsFor(0)[0];
253
- expect(result.status).toBeDefined();
254
- expect(result.status.state).toEqual('up');
252
+ let callbackArgs = callback.calls.argsFor(0)[0];
253
+ expect(callbackArgs.status).toBeDefined();
254
+ expect(callbackArgs.status.state).toEqual('up');
255
255
  });
256
- it('captures CANCELLED errors only', async() => {
256
+ it('calls the server and passes errors to the optional error callback', async () => {
257
257
  let serverStream = stream.Readable({read: () => undefined});
258
258
  spyOn(agonesSDK.client, 'watchGameServer').and.callFake(() => {
259
259
  return serverStream;
260
260
  });
261
261
 
262
262
  let callback = jasmine.createSpy('callback');
263
- agonesSDK.watchGameServer(callback);
264
-
265
- try {
266
- serverStream.emit('error', {
267
- code: grpc.status.CANCELLED
268
- });
269
- } catch (error) {
270
- fail();
271
- }
272
-
273
- try {
274
- serverStream.emit('error', {
275
- code: grpc.status.ABORTED
276
- });
277
- fail();
278
- } catch (error) {
279
- expect(error.code).toEqual(grpc.status.ABORTED);
280
- }
263
+ let errorCallback = jasmine.createSpy('errorCallback');
264
+ agonesSDK.watchGameServer(callback, errorCallback);
265
+
266
+ let error = {
267
+ code: grpc.status.CANCELLED
268
+ };
269
+ serverStream.emit('error', error);
270
+ expect(errorCallback).toHaveBeenCalled();
271
+ let errorCallbackArgs = errorCallback.calls.argsFor(0)[0];
272
+ expect(errorCallbackArgs).toEqual(error);
281
273
  });
282
274
  });
283
275
 
package/src/agonesSDK.js CHANGED
@@ -116,19 +116,17 @@ class AgonesSDK {
116
116
  });
117
117
  }
118
118
 
119
- watchGameServer(callback) {
119
+ watchGameServer(callback, errorCallback) {
120
120
  const request = new messages.Empty();
121
121
  const stream = this.client.watchGameServer(request);
122
122
  stream.on('data', (data) => {
123
123
  callback(data.toObject());
124
124
  });
125
- stream.on('error', (error) => {
126
- if (error.code === grpc.status.CANCELLED) {
127
- // Capture error when call is cancelled
128
- return;
129
- }
130
- throw error;
131
- });
125
+ if (errorCallback) {
126
+ stream.on('error', (error) => {
127
+ errorCallback(error);
128
+ });
129
+ }
132
130
  this.streams.push(stream);
133
131
  }
134
132