extracting base class for tests, adding readEvent tests, fixing typed error in related operations, adding a file logger
This commit is contained in:
@ -38,18 +38,21 @@ function eventDataFactory(eventId, type, isJson, data, metadata) {
|
||||
return new EventData(eventId, type, isJson, data, metadata);
|
||||
}
|
||||
|
||||
// Exporting classes
|
||||
module.exports.EventStoreConnection = require('./eventStoreConnection');
|
||||
module.exports.UserCredentials = require('./systemData/userCredentials');
|
||||
module.exports.EventData = EventData;
|
||||
module.exports.PersistentSubscriptionSettings = require('./persistentSubscriptionSettings');
|
||||
module.exports.SystemConsumerStrategies = require('./systemConsumerStrategies');
|
||||
// Exporting errors
|
||||
module.exports.WrongExpectedVersionError = require('./errors/wrongExpectedVersionError');
|
||||
module.exports.StreamDeletedError = require('./errors/streamDeletedError');
|
||||
module.exports.AccessDeniedError = require('./errors/accessDeniedError');
|
||||
// Exporting enums/constants
|
||||
module.exports.expectedVersion = expectedVersion;
|
||||
module.exports.positions = positions;
|
||||
module.exports.systemMetadata = require('./common/systemMetadata');
|
||||
|
||||
module.exports.eventReadStatus = results.EventReadStatus;
|
||||
// Helper functions
|
||||
module.exports.createConnection = module.exports.EventStoreConnection.create;
|
||||
module.exports.createEventData = eventDataFactory;
|
||||
|
@ -6,6 +6,9 @@ var InspectionDecision = require('../systemData/inspectionDecision');
|
||||
var InspectionResult = require('./../systemData/inspectionResult');
|
||||
var ClientMessage = require('../messages/clientMessage');
|
||||
var results = require('../results');
|
||||
var WrongExpectedVersionError = require('../errors/wrongExpectedVersionError');
|
||||
var StreamDeletedError = require('../errors/streamDeletedError');
|
||||
var AccessDeniedError = require('../errors/accessDeniedError');
|
||||
|
||||
var OperationBase = require('../clientOperations/operationBase');
|
||||
|
||||
@ -38,17 +41,16 @@ DeleteStreamOperation.prototype._inspectResponse = function(response) {
|
||||
case ClientMessage.OperationResult.ForwardTimeout:
|
||||
return new InspectionResult(InspectionDecision.Retry, "ForwardTimeout");
|
||||
case ClientMessage.OperationResult.WrongExpectedVersion:
|
||||
var err = util.format("Delete stream failed due to WrongExpectedVersion. Stream: %s, Expected version: %d.", this._stream, this._expectedVersion);
|
||||
this.fail(new Error("Wrong expected version: " + err));
|
||||
this.fail(new WrongExpectedVersionError("Delete", this._stream, this._expectedVersion));
|
||||
return new InspectionResult(InspectionDecision.EndOperation, "WrongExpectedVersion");
|
||||
case ClientMessage.OperationResult.StreamDeleted:
|
||||
this.fail(new Error("Stream deleted: " + this._stream));
|
||||
this.fail(new StreamDeletedError(this._stream));
|
||||
return new InspectionResult(InspectionDecision.EndOperation, "StreamDeleted");
|
||||
case ClientMessage.OperationResult.InvalidTransaction:
|
||||
this.fail(new Error("Invalid transaction."));
|
||||
return new InspectionResult(InspectionDecision.EndOperation, "InvalidTransaction");
|
||||
case ClientMessage.OperationResult.AccessDenied:
|
||||
this.fail(new Error(util.format("Write access denied for stream '%s'.", this._stream)));
|
||||
this.fail(new AccessDeniedError("Delete", this._stream));
|
||||
return new InspectionResult(InspectionDecision.EndOperation, "AccessDenied");
|
||||
default:
|
||||
throw new Error(util.format("Unexpected OperationResult: %d.", response.result));
|
||||
|
@ -5,6 +5,7 @@ var ClientMessage = require('../messages/clientMessage');
|
||||
var InspectionResult = require('./../systemData/inspectionResult');
|
||||
var InspectionDecision = require('../systemData/inspectionDecision');
|
||||
var results = require('../results');
|
||||
var AccessDeniedError = require('../errors/accessDeniedError');
|
||||
|
||||
var OperationBase = require('./operationBase');
|
||||
|
||||
@ -42,7 +43,7 @@ ReadEventOperation.prototype._inspectResponse = function(response) {
|
||||
this.fail(new Error("Server error: " + response.error));
|
||||
return new InspectionResult(InspectionDecision.EndOperation, "Error");
|
||||
case ClientMessage.ReadEventCompleted.ReadEventResult.AccessDenied:
|
||||
this.fail(new Error(util.format("Read access denied for stream '%s'.", this._stream)));
|
||||
this.fail(new AccessDeniedError("Read", this._stream));
|
||||
return new InspectionResult(InspectionDecision.EndOperation, "AccessDenied");
|
||||
default:
|
||||
throw new Error(util.format("Unexpected ReadEventResult: %s.", response.result));
|
||||
|
@ -13,7 +13,7 @@ function FileLogger(filePath, append) {
|
||||
|
||||
function createLine(level, args, argsStartIndex) {
|
||||
var msg = util.format.apply(util, Array.prototype.slice.call(args, argsStartIndex));
|
||||
return util.format('%s %s - %s%s', new Date().toISOString(), level, msg, os.EOL);
|
||||
return util.format('%s %s - %s%s', new Date().toISOString().substr(11,12), level, msg, os.EOL);
|
||||
}
|
||||
|
||||
FileLogger.prototype.debug = function() {
|
||||
|
@ -111,7 +111,12 @@ module.exports = require("protobufjs").newBuilder({})['import']({
|
||||
"name": "ResolvedIndexedEvent",
|
||||
"fields": [
|
||||
{
|
||||
"rule": "required",
|
||||
/*
|
||||
rule changed from required to optional
|
||||
because protobufjs doesn't allow null value for required object
|
||||
and in the case of a non-success result, event will be null
|
||||
*/
|
||||
"rule": "optional",
|
||||
"type": "EventRecord",
|
||||
"name": "event",
|
||||
"id": 1
|
||||
|
Reference in New Issue
Block a user