Skip to content

Commit d6fab9e

Browse files
Add test for ncit deprecateRecords()
1 parent 085872e commit d6fab9e

2 files changed

Lines changed: 49 additions & 1 deletion

File tree

src/ncit/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,7 @@ const deprecateRecords = async (conn, { ncitIds, source }) => {
404404
const gkbRecords = await conn.getRecords({
405405
filters: { source },
406406
neighbors: 0,
407+
returnProperties: ['@class', '@rid', 'deprecated', 'sourceId'],
407408
target: 'Ontology',
408409
});
409410
logger.info(`Currently ${gkbRecords.length} NCIt Ontology records in GraphKB`);
@@ -666,6 +667,7 @@ const uploadFile = async ({
666667
module.exports = {
667668
SOURCE_DEFN,
668669
cleanRawRow,
670+
deprecateRecords,
669671
filterSynonyms,
670672
pickEndpoint,
671673
processFileContent,

test/ncit.test.js

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
const { cleanRawRow, pickEndpoint, filterSynonyms } = require('../src/ncit');
1+
const {
2+
cleanRawRow,
3+
deprecateRecords,
4+
filterSynonyms,
5+
pickEndpoint,
6+
} = require('../src/ncit');
27

38
describe('cleanRawRow', () => {
49
const rawRow = {
@@ -173,3 +178,44 @@ describe('filterSynonyms', () => {
173178
]);
174179
});
175180
});
181+
182+
describe('deprecateRecords', () => {
183+
test('deprecates only non-uploaded, non-deprecated records', async () => {
184+
const ncitIds = new Set(['C300']);
185+
const records = [
186+
// should be deprecated
187+
{
188+
'@class': 'Disease', '@rid': '#1:1', sourceId: 'C100',
189+
},
190+
// should not be deprecated since sourceId in already-uploaded ncitIds
191+
{
192+
'@class': 'Therapy', '@rid': '#1:2', sourceId: 'C300',
193+
},
194+
// should not be deprecated since already deprecated
195+
{
196+
'@class': 'AnatomicalEntity', '@rid': '#1:3', deprecated: true, sourceId: 'C200',
197+
},
198+
];
199+
const conn = {
200+
getRecords: jest.fn().mockResolvedValue(records),
201+
updateRecord: jest.fn().mockResolvedValue(),
202+
};
203+
const source = '#9:99';
204+
205+
await deprecateRecords(conn, { ncitIds, source });
206+
207+
expect(conn.getRecords).toHaveBeenCalledWith({
208+
filters: { source },
209+
neighbors: 0,
210+
returnProperties: ['@class', '@rid', 'deprecated', 'sourceId'],
211+
target: 'Ontology',
212+
});
213+
214+
expect(conn.updateRecord).toHaveBeenCalledTimes(1);
215+
expect(conn.updateRecord).toHaveBeenCalledWith(
216+
'Disease',
217+
'#1:1',
218+
{ deprecated: true },
219+
);
220+
});
221+
});

0 commit comments

Comments
 (0)