blob: b3aaba84dd56c692ff1be1833615c02b60ed9568 [file] [log] [blame]
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {assert} from 'chai';
import {MrAutocomplete} from './mr-autocomplete.js';
let element;
describe('mr-autocomplete', () => {
beforeEach(() => {
element = document.createElement('mr-autocomplete');
document.body.appendChild(element);
});
afterEach(() => {
document.body.removeChild(element);
});
it('initializes', () => {
assert.instanceOf(element, MrAutocomplete);
});
it('sets properties based on vocabularies', async () => {
assert.deepEqual(element.strings, []);
assert.deepEqual(element.docDict, {});
element.vocabularies = {
'project': {
'strings': ['chromium', 'v8'],
'docDict': {'chromium': 'move the web forward'},
},
};
element.vocabularyName = 'project';
await element.updateComplete;
assert.deepEqual(element.strings, ['chromium', 'v8']);
assert.deepEqual(element.docDict, {'chromium': 'move the web forward'});
});
it('_setupProjectVocabulary', () => {
assert.deepEqual(element._setupProjectVocabulary({}), {strings: []});
assert.deepEqual(element._setupProjectVocabulary({
ownerOf: ['chromium'],
memberOf: ['skia'],
contributorTo: ['v8'],
}), {strings: ['chromium', 'skia', 'v8']});
});
it('_setupMemberVocabulary', () => {
assert.deepEqual(element._setupMemberVocabulary({}), {strings: []});
assert.deepEqual(element._setupMemberVocabulary({
userRefs: [
{displayName: 'group@example.com', userId: '100'},
{displayName: 'test@example.com', userId: '123'},
{displayName: 'test2@example.com', userId: '543'},
],
groupRefs: [
{displayName: 'group@example.com', userId: '100'},
],
}), {strings:
['group@example.com', 'test@example.com', 'test2@example.com'],
});
});
it('_setupOwnerVocabulary', () => {
assert.deepEqual(element._setupOwnerVocabulary({}), {strings: []});
assert.deepEqual(element._setupOwnerVocabulary({
userRefs: [
{displayName: 'group@example.com', userId: '100'},
{displayName: 'test@example.com', userId: '123'},
{displayName: 'test2@example.com', userId: '543'},
],
groupRefs: [
{displayName: 'group@example.com', userId: '100'},
],
}), {strings:
['test@example.com', 'test2@example.com'],
});
});
});