1
0
Fork 0

DataValidatorTest: Extract boilerplate instantiation (cleanup)

Tidy up a little bit; this thing is a mess and hard to work with.

* test/validate/DataValidatorTest
  (createStubs): Add function.
  Use it.
master
Mike Gerwitz 2017-02-16 16:20:18 -05:00
parent 73390530bf
commit e22aa2a880
1 changed files with 46 additions and 51 deletions

View File

@ -54,14 +54,13 @@ describe( 'DataValidator', () =>
}
);
const vmonitor = ValidStateMonitor();
const dep_factory = createMockDependencyFactory();
const { sut, vmonitor, dep_factory, getStore } = createStubs( {
bvalidator: bvalidator,
} );
const getStore = createStubStore();
const { bstore } = getStore();
const mock_bstore = sinon.mock( bstore );
const mock_bstore = sinon.mock( bstore );
const mock_vmonitor = sinon.mock( vmonitor );
const mock_dep_factory = sinon.mock( dep_factory );
@ -110,11 +109,7 @@ describe( 'DataValidator', () =>
second: { indexes: [ 0, 1 ], is: true },
};
const bvalidator = createMockBucketValidator();
const vmonitor = ValidStateMonitor();
const dep_factory = createMockDependencyFactory();
const getStore = createStubStore();
const { sut, getStore } = createStubs( {} );
const { cstore } = getStore();
const mock_cstore = sinon.mock( cstore );
@ -124,7 +119,7 @@ describe( 'DataValidator', () =>
.once()
.returns( Promise.resolve( cstore ) );
return Sut( bvalidator, vmonitor, dep_factory, getStore )
return sut
.validate( {}, classes )
.then( () =>
{
@ -156,9 +151,9 @@ describe( 'DataValidator', () =>
}
);
const vmonitor = ValidStateMonitor();
const dep_factory = createMockDependencyFactory();
const getStore = createStubStore();
const { sut, vmonitor, dep_factory, getStore } = createStubs( {
bvalidator: bvalidator,
} );
const diff = { foo: [ 'a', 'b', 'c' ] };
const expected_failures = {
@ -196,9 +191,7 @@ describe( 'DataValidator', () =>
it( 'rejects if field monitor update rejects', () =>
{
const bvalidator = createMockBucketValidator();
const vmonitor = ValidStateMonitor();
const dep_factory = createMockDependencyFactory();
const { sut, vmonitor } = createStubs( {} );
const expected_e = Error();
@ -207,10 +200,8 @@ describe( 'DataValidator', () =>
.once()
.returns( Promise.reject( expected_e ) );
return expect(
Sut( bvalidator, vmonitor, dep_factory, createStubStore() )
.validate( {} )
).to.eventually.be.rejectedWith( expected_e );
return expect( sut.validate( {} ) ).
to.eventually.be.rejectedWith( expected_e );
} );
@ -223,16 +214,16 @@ describe( 'DataValidator', () =>
[ {}, undefined ],
].forEach( args => it( 'does not re-use previous store state', () =>
{
const bvalidator = createMockBucketValidator();
const vmonitor = ValidStateMonitor();
const dep_factory = createMockDependencyFactory();
const stores = {
store: MemoryStore(),
bstore: sinon.createStubInstance( MemoryStore ),
cstore: sinon.createStubInstance( MemoryStore ),
};
const { sut, getStore } = createStubs( {
getStore: () => stores,
} );
const { bstore, cstore } = stores;
const cleared = which =>
@ -244,8 +235,6 @@ describe( 'DataValidator', () =>
bstore.clear = () => cleared( 'b' );
cstore.clear = () => cleared( 'c' );
const sut = Sut( bvalidator, vmonitor, dep_factory, () => stores );
return sut.validate.apply( sut, args )
.then( () =>
expect( cleared.b && cleared.c ).to.be.true
@ -260,14 +249,16 @@ describe( 'DataValidator', () =>
let vcalled = 0;
const bvalidator = createMockBucketValidator( function( _, __, ___ )
{
vcalled++;
} );
const bvalidator = createMockBucketValidator(
( _, __, ___ ) => vcalled++
);
const vmonitor = sinon.createStubInstance( ValidStateMonitor );
const dep_factory = createMockDependencyFactory();
const getStore = createStubStore();
const vmonitor = sinon.createStubInstance( ValidStateMonitor );
const { sut, getStore } = createStubs( {
bvalidator: bvalidator,
vmonitor: vmonitor,
} );
const diff_a = { foo: [ 'a', 'b', 'c' ] };
const diff_b = { foo: [ 'd' ] };
@ -310,8 +301,6 @@ describe( 'DataValidator', () =>
.catch( e => reject( e ) );
};
const sut = Sut( bvalidator, vmonitor, dep_factory, getStore );
sut.validate( diff_a, {}, validatef );
sut.validate( diff_b, {}, validatef );
} );
@ -323,11 +312,7 @@ describe( 'DataValidator', () =>
{
it( 'directly updates failures', () =>
{
const bvalidator = createMockBucketValidator();
const vmonitor = ValidStateMonitor();
const dep_factory = createMockDependencyFactory();
const getStore = createStubStore();
const { sut, vmonitor, getStore } = createStubs( {} );
const { bstore } = getStore();
const diff = {
@ -350,7 +335,7 @@ describe( 'DataValidator', () =>
.once()
.withExactArgs( getStore().store, failures );
return Sut( bvalidator, vmonitor, dep_factory, getStore )
return sut
.updateFailures( diff, failures )
.then( () =>
{
@ -375,15 +360,8 @@ describe( 'DataValidator', () =>
{
it( 'proxies to validator', () =>
{
const bvalidator = createMockBucketValidator();
const vmonitor = ValidStateMonitor();
const dep_factory = createMockDependencyFactory();
const mock_vmonitor = sinon.mock( vmonitor );
const sut = Sut(
bvalidator, vmonitor, dep_factory, createStubStore()
);
const { sut, vmonitor } = createStubs( {} );
const mock_vmonitor = sinon.mock( vmonitor );
const failures = [ 'foo', 'bar' ];
@ -433,3 +411,20 @@ function createStubStore()
return () => stores;
}
function createStubs( {
bvalidator = createMockBucketValidator(),
vmonitor = ValidStateMonitor(),
dep_factory = createMockDependencyFactory(),
getStore = createStubStore(),
} )
{
return {
bvalidator: bvalidator,
vmonitor: vmonitor,
dep_factory: dep_factory,
getStore: getStore,
sut: Sut( bvalidator, vmonitor, dep_factory, getStore ),
};
}