@@ -5,102 +5,105 @@ const {
55} = require ( '../src/graphkb' ) ;
66
77describe ( 'orderPreferredOntologyTerms' , ( ) => {
8- test ( 'prefer non-deprecated' , ( ) => {
8+ test ( 'prefer non-deprecated terms over deprecated ones ' , ( ) => {
99 expect ( orderPreferredOntologyTerms (
10- { deprecated : true } , { deprecated : false } ,
11- ) ) . toBe ( 1 ) ;
12- expect ( orderPreferredOntologyTerms (
13- { deprecated : false } , { deprecated : true } ,
10+ { deprecated : false } ,
11+ { deprecated : true } ,
1412 ) ) . toBe ( - 1 ) ;
13+ expect ( orderPreferredOntologyTerms (
14+ { deprecated : true } ,
15+ { deprecated : false } ,
16+ ) ) . toBe ( 1 ) ;
1517 } ) ;
1618
1719 test ( 'prefer terms with independent sourceId' , ( ) => {
1820 expect ( orderPreferredOntologyTerms (
19- { alias : false } , { alias : true } ,
21+ { alias : false } ,
22+ { alias : true } ,
2023 ) ) . toBe ( - 1 ) ;
2124 expect ( orderPreferredOntologyTerms (
22- { alias : true } , { alias : false } ,
25+ { alias : true } ,
26+ { alias : false } ,
2327 ) ) . toBe ( 1 ) ;
2428 expect ( orderPreferredOntologyTerms (
25- { } , { dependency : true } ,
29+ { } ,
30+ { dependency : true } ,
2631 ) ) . toBe ( - 1 ) ;
2732 expect ( orderPreferredOntologyTerms (
28- { dependency : true } , { } ,
33+ { dependency : true } ,
34+ { } ,
2935 ) ) . toBe ( 1 ) ;
3036 } ) ;
3137
32- test ( 'prefer generic to versioned terms ' , ( ) => {
38+ test ( 'prefer terms with descriptions ' , ( ) => {
3339 expect ( orderPreferredOntologyTerms (
34- { } , { sourceIdVersion : '' } ,
40+ { description : 'a description' } ,
41+ { description : '' } ,
3542 ) ) . toBe ( - 1 ) ;
3643 expect ( orderPreferredOntologyTerms (
37- { sourceIdVersion : '' } , { } ,
44+ { description : '' } ,
45+ { description : 'a description' } ,
3846 ) ) . toBe ( 1 ) ;
3947 } ) ;
4048
41- test ( 'prefer newer version of same record ' , ( ) => {
49+ test ( 'prefer terms most recently updated ' , ( ) => {
4250 expect ( orderPreferredOntologyTerms (
43- { sourceIdVersion : '2019-10-08' } , { sourceIdVersion : '2020-10-08' } ,
51+ { updatedAt : 1639435944133 } ,
52+ { updatedAt : 1565316882229 } ,
4453 ) ) . toBe ( - 1 ) ;
4554 expect ( orderPreferredOntologyTerms (
46- { sourceIdVersion : '2020-10-08' } , { sourceIdVersion : '2019-10-08' } ,
55+ { updatedAt : 1565316882229 } ,
56+ { updatedAt : 1639435944133 } ,
4757 ) ) . toBe ( 1 ) ;
4858 } ) ;
4959
50- test ( 'prefer newer source version of same record' , ( ) => {
51- expect ( orderPreferredOntologyTerms (
52- { source : { version : 1 } , sourceIdVersion : '2019-10-08' } ,
53- { source : { version : 2 } , sourceIdVersion : '2019-10-08' } ,
54- ) ) . toBe ( - 1 ) ;
60+ test ( 'fallback to 0 if there is no prefered one' , ( ) => {
5561 expect ( orderPreferredOntologyTerms (
56- { source : { version : 2 } , sourceIdVersion : '2019-10-08' } ,
57- { source : { version : 1 } , sourceIdVersion : '2019-10-08' } ,
58- ) ) . toBe ( 1 ) ;
62+ { } ,
63+ { } ,
64+ ) ) . toBe ( 0 ) ;
5965 } ) ;
6066
61- test ( 'prefer terms with descriptions' , ( ) => {
62- expect ( orderPreferredOntologyTerms (
63- { description : 'a description' , sourceIdVersion : '2019-10-08' } ,
64- { description : '' , sourceIdVersion : '2019-10-08' } ,
65- ) ) . toBe ( - 1 ) ;
66- expect ( orderPreferredOntologyTerms (
67- { description : '' , sourceIdVersion : '2019-10-08' } ,
68- { description : 'a description' , sourceIdVersion : '2019-10-08' } ,
69- ) ) . toBe ( 1 ) ;
70- } ) ;
67+ describe ( 'when terms DO have the same source and sourceId' , ( ) => {
68+ const term = { source : { '@rid' : '#123:45' } , sourceId : '1' } ;
7169
72- test ( 'use source rank to sort results' , ( ) => {
73- expect ( orderPreferredOntologyTerms (
74- { source : { sort : 1 } , sourceId : 1 } ,
75- { source : { sort : 2 } , sourceId : 2 } ,
76- ) ) . toBe ( - 1 ) ;
77- expect ( orderPreferredOntologyTerms (
78- { source : { sort : 2 } , sourceId : 1 } ,
79- { source : { sort : 1 } , sourceId : 2 } ,
80- ) ) . toBe ( 1 ) ;
81- expect ( orderPreferredOntologyTerms (
82- { source : { version : 1 } , sourceId : 1 } ,
83- { source : { version : 2 } , sourceId : 2 } ,
84- ) ) . toBe ( - 1 ) ;
85- expect ( orderPreferredOntologyTerms (
86- { source : { version : 2 } , sourceId : 1 } ,
87- { source : { version : 1 } , sourceId : 2 } ,
88- ) ) . toBe ( 1 ) ;
89- expect ( orderPreferredOntologyTerms (
90- { description : 'a description' , source : { } , sourceId : 1 } ,
91- { description : '' , source : { } , sourceId : 2 } ,
92- ) ) . toBe ( - 1 ) ;
93- expect ( orderPreferredOntologyTerms (
94- { description : '' , source : { } , sourceId : 1 } ,
95- { description : 'a description' , source : { } , sourceId : 2 } ,
96- ) ) . toBe ( 1 ) ;
70+ test ( 'prefer generic to versioned terms' , ( ) => {
71+ expect ( orderPreferredOntologyTerms (
72+ { ...term } ,
73+ { ...term , sourceIdVersion : '2020-10-08' } ,
74+ ) ) . toBe ( - 1 ) ;
75+ expect ( orderPreferredOntologyTerms (
76+ { ...term , sourceIdVersion : '2020-10-08' } ,
77+ { ...term } ,
78+ ) ) . toBe ( 1 ) ;
79+ } ) ;
80+
81+ test ( 'prefer newer version of same record' , ( ) => {
82+ expect ( orderPreferredOntologyTerms (
83+ { ...term , sourceIdVersion : '2020-10-08' } ,
84+ { ...term , sourceIdVersion : '2019-10-08' } ,
85+ ) ) . toBe ( - 1 ) ;
86+ expect ( orderPreferredOntologyTerms (
87+ { ...term , sourceIdVersion : '2019-10-08' } ,
88+ { ...term , sourceIdVersion : '2020-10-08' } ,
89+ ) ) . toBe ( 1 ) ;
90+ } ) ;
9791 } ) ;
9892
99- test ( 'fallback to 0 if there is no prefered one' , ( ) => {
100- expect ( orderPreferredOntologyTerms (
101- { source : { } , sourceId : 1 } ,
102- { source : { } , sourceId : 2 } ,
103- ) ) . toBe ( 0 ) ;
93+ describe ( 'when terms DO NOT have the same source and sourceId combination' , ( ) => {
94+ const term1 = { source : { '@rid' : '#123:45' } , sourceId : '1' } ;
95+ const term2 = { source : { '@rid' : '#123:46' } , sourceId : '2' } ;
96+
97+ test ( 'use source rank to sort results' , ( ) => {
98+ expect ( orderPreferredOntologyTerms (
99+ { ...term1 , source : { sort : 1 } } ,
100+ { ...term2 , source : { sort : 2 } } ,
101+ ) ) . toBe ( - 1 ) ;
102+ expect ( orderPreferredOntologyTerms (
103+ { ...term1 , source : { sort : 2 } } ,
104+ { ...term2 , source : { sort : 1 } } ,
105+ ) ) . toBe ( 1 ) ;
106+ } ) ;
104107 } ) ;
105108} ) ;
106109
0 commit comments