Skip to content

Commit

Permalink
Fix get filter by name in barracks client
Browse files Browse the repository at this point in the history
  • Loading branch information
Gregoire Weber committed Feb 17, 2017
1 parent fb453f2 commit e78eff9
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 9 deletions.
22 changes: 15 additions & 7 deletions clients/Barracks.js
Original file line number Diff line number Diff line change
Expand Up @@ -201,15 +201,23 @@ class Barracks {

getFilterByName(token, filterName) {
return new Promise((resolve, reject) => {
this.getFilters(token).then(filters => {
const filter = filters.find(filter => {
return filter.name === filterName;
this.getFilters(token).then(stream => {
stream.onPageReceived(page => {
console.log('plop');
const filter = page.find(filter => {
return filter.name === filterName;
});
if (filter) {
resolve(filter);
}
});
if (filter) {
resolve(filter);
} else {
stream.onLastPage(() => {
console.log('coucou');
reject('No filter with name ' + filterName + ' found.');
}
});
stream.onError(error => {
reject(error);
});
}).catch(err => {
reject(err);
});
Expand Down
34 changes: 32 additions & 2 deletions clients/Barracks.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -986,13 +986,34 @@ describe('Barracks', () => {
});
});

it('should return an error if stream fail', done => {
// Given
const error = 'stream failed';
const stream = new PageableStream();
barracks.getFilters = sinon.stub().returns(Promise.resolve(stream));

// When / Then
barracks.getFilterByName(token, filterName).then(result => {
done('should have failed');
}).catch(err => {
expect(err).to.be.equals(error);
expect(barracks.getFilters).to.have.been.calledOnce;
expect(barracks.getFilters).to.have.been.calledWithExactly(token);
done();
});
setTimeout(() => {
stream.fail(error);
}, 250);
});

it('should return an error if filter does not exists', done => {
// Given
const response = [
{ name: 'sdfghjkl', query: { eq: { unitId: 'plop' } } },
{ name: 'zxcvbnm', query: { ne: { unitId: 'replop' } } }
];
barracks.getFilters = sinon.stub().returns(Promise.resolve(response));
const stream = new PageableStream();
barracks.getFilters = sinon.stub().returns(Promise.resolve(stream));

// When / Then
barracks.getFilterByName(token, filterName).then(result => {
Expand All @@ -1003,6 +1024,10 @@ describe('Barracks', () => {
expect(barracks.getFilters).to.have.been.calledWithExactly(token);
done();
});
setTimeout(() => {
stream.write(response);
stream.lastPage();
}, 250);
});

it('should return specified filter when request succeed', done => {
Expand All @@ -1012,7 +1037,8 @@ describe('Barracks', () => {
{ name: 'zxcvbnm', query: { ne: { unitId: 'replop' } } },
filter
];
barracks.getFilters = sinon.stub().returns(Promise.resolve(response));
const stream = new PageableStream();
barracks.getFilters = sinon.stub().returns(Promise.resolve(stream));

// When / Then
barracks.getFilterByName(token, filterName).then(result => {
Expand All @@ -1023,6 +1049,10 @@ describe('Barracks', () => {
}).catch(err => {
done(err);
});
setTimeout(() => {
stream.write(response);
stream.lastPage();
}, 250);
});
});

Expand Down

0 comments on commit e78eff9

Please sign in to comment.