Skip to content

Commit 9820796

Browse files
committed
tests
1 parent 81e634d commit 9820796

File tree

2 files changed

+48
-5
lines changed

2 files changed

+48
-5
lines changed

packages/compass-data-modeling/src/utils/utils.spec.tsx

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
isRelationshipOfAField,
55
isSameFieldOrAncestor,
66
dualSourceHandlerDebounce,
7+
isRelationshipInvalid,
78
} from './utils';
89
import type { Relationship } from '../services/data-model-storage';
910

@@ -135,3 +136,42 @@ describe('dualSourceHandlerDebounce', function () {
135136
expect(invocationCount).to.equal(3);
136137
});
137138
});
139+
140+
describe('isRelationshipInvalid', function () {
141+
it('should return true for relationships with missing namespaces', function () {
142+
const relationship = {
143+
relationship: [
144+
{ ns: '', fields: ['a'], cardinality: 1 },
145+
{ ns: 'db.coll2', fields: ['b'], cardinality: 1 },
146+
],
147+
} as any;
148+
expect(isRelationshipInvalid(relationship)).to.be.true;
149+
});
150+
it('should return true for relationships with no fields', function () {
151+
const relationship = {
152+
relationship: [
153+
{ ns: 'db.coll1', fields: undefined, cardinality: 1 },
154+
{ ns: 'db.coll2', cardinality: 1 },
155+
],
156+
} as any;
157+
expect(isRelationshipInvalid(relationship)).to.be.true;
158+
});
159+
it('should return true for relationships with empty fields', function () {
160+
const relationship = {
161+
relationship: [
162+
{ ns: 'db.coll1', fields: [], cardinality: 1 },
163+
{ ns: 'db.coll2', fields: [], cardinality: 1 },
164+
],
165+
} as any;
166+
expect(isRelationshipInvalid(relationship)).to.be.true;
167+
});
168+
it('should return false for relationships with correct namespaces and fields', function () {
169+
const relationship = {
170+
relationship: [
171+
{ ns: 'db.coll1', fields: ['_id'], cardinality: 1 },
172+
{ ns: 'db.coll2', fields: ['order_id'], cardinality: 1 },
173+
],
174+
} as any;
175+
expect(isRelationshipInvalid(relationship)).to.be.false;
176+
});
177+
});

packages/compass-data-modeling/src/utils/utils.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,14 @@ export function getNamespaceRelationships(
9999

100100
export function isRelationshipInvalid(relationship: Relationship): boolean {
101101
const [source, target] = relationship.relationship;
102-
if (!source.ns || !target.ns || !source.fields || !target.fields) {
103-
return true;
104-
}
105-
106-
if (source.fields.length === 0 || target.fields.length === 0) {
102+
if (
103+
!source.ns ||
104+
!target.ns ||
105+
!source.fields ||
106+
!target.fields ||
107+
source.fields.length === 0 ||
108+
target.fields.length === 0
109+
) {
107110
return true;
108111
}
109112

0 commit comments

Comments
 (0)