labels: []
}
}
+ },
+ automation: {
+ strict: true,
+ labels: [],
+ values: {
+ upload: { labels: [] },
+ results: { labels: [] },
+ }
}
}
}
{id: "IDKEYANIMALS", label: "Creature"},
{id: "IDKEYCOMMENT", label: "IDKEYCOMMENT"},
{id: "IDKEYSIZES", label: "Sizes"},
+ {id: "automation", label: "automation"},
]);
});
const preferredTagKeys = Vocabulary.getPreferredTags(vocabulary);
// Alphabetically ordered by label
expect(preferredTagKeys).toEqual([
- {id: "IDKEYANIMALS", label: "Animal", description: "Animal"},
- {id: "IDKEYCOMMENT", label: "IDKEYCOMMENT"},
- {id: "IDKEYSIZES", label: "Sizes", description: "Sizes"},
+ {id: "IDKEYANIMALS", label: "Animal", synonyms: []},
+ {id: "IDKEYCOMMENT", label: "IDKEYCOMMENT", synonyms: []},
+ {id: "IDKEYSIZES", label: "Sizes", synonyms: []},
+ {id: "automation", label: "automation", synonyms: []},
]);
});
- it('returns the list of preferred tag keys with synonyms', () => {
- const preferredTagKeys = Vocabulary.getPreferredTags(vocabulary, true);
+ it('returns the list of preferred tag keys with matching synonyms', () => {
+ const preferredTagKeys = Vocabulary.getPreferredTags(vocabulary, 'creat');
// Alphabetically ordered by label
expect(preferredTagKeys).toEqual([
- {id: "IDKEYANIMALS", label: "Animal", description: "Animal (Creature, Beast)"},
- {id: "IDKEYCOMMENT", label: "IDKEYCOMMENT"},
- {id: "IDKEYSIZES", label: "Sizes", description: "Sizes"},
+ {id: "IDKEYANIMALS", label: "Animal", synonyms: ["Creature"]},
+ {id: "IDKEYCOMMENT", label: "IDKEYCOMMENT", synonyms: []},
+ {id: "IDKEYSIZES", label: "Sizes", synonyms: []},
+ {id: "automation", label: "automation", synonyms: []},
]);
});
{id: "IDVALSIZES2", label: "Medium"},
{id: "IDVALSIZES1", label: "S"},
{id: "IDVALSIZES1", label: "Small"},
- ])
+ ]);
+ // Let's try a key that doesn't have any labels
+ const tagValues2 = Vocabulary.getTagValues('automation', vocabulary);
+ expect(tagValues2).toEqual([
+ {id: "results", label: "results"},
+ {id: "upload", label: "upload"},
+ ]);
});
it('returns the preferred tag values for a given key', () => {
const preferredTagValues = Vocabulary.getPreferredTagValues('IDKEYSIZES', vocabulary);
// Alphabetically ordered by label
expect(preferredTagValues).toEqual([
- {id: "IDVALSIZES4", label: "IDVALSIZES4"},
- {id: "IDVALSIZES3", label: "Large", description: "Large"},
- {id: "IDVALSIZES2", label: "Medium", description: "Medium"},
- {id: "IDVALSIZES1", label: "Small", description: "Small"},
- ])
+ {id: "IDVALSIZES4", label: "IDVALSIZES4", synonyms: []},
+ {id: "IDVALSIZES3", label: "Large", synonyms: []},
+ {id: "IDVALSIZES2", label: "Medium", synonyms: []},
+ {id: "IDVALSIZES1", label: "Small", synonyms: []},
+ ]);
+ // Let's try a key that doesn't have any labels
+ const preferredTagValues2 = Vocabulary.getPreferredTagValues('automation', vocabulary);
+ expect(preferredTagValues2).toEqual([
+ {id: "results", label: "results", synonyms: []},
+ {id: "upload", label: "upload", synonyms: []},
+ ]);
});
- it('returns the preferred tag values with synonyms for a given key', () => {
- const preferredTagValues = Vocabulary.getPreferredTagValues('IDKEYSIZES', vocabulary, true);
+ it('returns the preferred tag values with matching synonyms for a given key', () => {
+ const preferredTagValues = Vocabulary.getPreferredTagValues('IDKEYSIZES', vocabulary, 'litt');
// Alphabetically ordered by label
expect(preferredTagValues).toEqual([
- {id: "IDVALSIZES4", label: "IDVALSIZES4"},
- {id: "IDVALSIZES3", label: "Large", description: "Large (L)"},
- {id: "IDVALSIZES2", label: "Medium", description: "Medium (M)"},
- {id: "IDVALSIZES1", label: "Small", description: "Small (S, Little)"},
+ {id: "IDVALSIZES4", label: "IDVALSIZES4", synonyms: []},
+ {id: "IDVALSIZES3", label: "Large", synonyms: []},
+ {id: "IDVALSIZES2", label: "Medium", synonyms: []},
+ {id: "IDVALSIZES1", label: "Small", synonyms: ["Little"]},
])
});
{keyLabel: 'Creature', expected: 'IDKEYANIMALS'},
// Non-existent label returns empty string
{keyLabel: 'ThisKeyLabelDoesntExist', expected: ''},
+ // Key with no labels still returns the key ID
+ {keyLabel: 'automation', expected: 'automation'},
]
testCases.forEach(tc => {
const tagValueID = Vocabulary.getTagKeyID(tc.keyLabel, vocabulary);
{keyID: 'IDKEYANIMALS', valueLabel: 'Dinosaur', expected: ''},
// Key ID unknown
{keyID: 'IDNONSENSE', valueLabel: 'Does not matter', expected: ''},
+ // Value with no labels still returns the value ID
+ {keyID: 'automation', valueLabel: 'results', expected: 'results'},
]
testCases.forEach(tc => {
const tagValueID = Vocabulary.getTagValueID(tc.keyID, tc.valueLabel, vocabulary);