Skip to content

Commit

Permalink
Fix panet call when empty scope on relation
Browse files Browse the repository at this point in the history
  • Loading branch information
minottic committed Feb 25, 2022
1 parent 9277a03 commit c379d04
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 3 deletions.
6 changes: 4 additions & 2 deletions common/mixins/panet.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,10 @@ module.exports = (Model) => {
ctx.args.filter,
"relation",
(v) => v === "techniques",
async (obj) => (
obj.scope.where = await PanetOntology.panet(obj.scope.where))
async (obj) => {
if (obj.scope && obj.scope.where)
obj.scope.where = await PanetOntology.panet(obj.scope.where)
}
)
})
}
44 changes: 43 additions & 1 deletion test/panet.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,25 @@ describe('PaNET', () => {
sandbox = require('sinon').createSandbox()
delete require.cache[require.resolve("../server/server")];
app = require('../server/server');
done()
});

beforeEach((done) => {
getMock = sandbox.stub(superagent, "get").returns(
{ query: async () => (
{ text: "{\"pid\": {\"inq\":[\"http://purl.org/pan-science/PaNET/PaNET01227\"]}}"
}) });
done()
});

afterEach((done) => {
sandbox.restore();
done()
});

after((done) => {
delete require.cache[require.resolve('../server/server')];
process.env = env;
sandbox.restore();
done()
});

Expand Down Expand Up @@ -77,6 +85,40 @@ describe('PaNET', () => {
});
});

context('empty scope on technique relation', () => {
it('should return an array of datasets matching the technique', (done) => {
const requestUrl = '/api/Datasets';
const filter = JSON.stringify({
include: [
{
relation: 'techniques',
},
],
});
request(app)
.get(requestUrl + '?filter=' + filter)
.set('Accept', 'application/json')
.expect(200)
.expect('Content-Type', /json/)
.end((err, res) => {
if (err) throw err;

expect(getMock.callCount).to.eql(0)
expect(res.body).to.be.an('array');
res.body.forEach((dataset) => {
expect(dataset).to.have.property('pid');
expect(dataset).to.have.property('title');
expect(dataset).to.have.property('isPublic');
expect(dataset).to.have.property('creationDate');
expect(dataset).to.have.property('score');
expect(dataset).to.have.property('techniques');
expect(dataset.techniques).to.be.an('array');
});
done();
});
});
});

context(
'where datasets are using technique x-ray absorption and sample is solid copper cylinder',
() => {
Expand Down

0 comments on commit c379d04

Please sign in to comment.