blob: d44f66ae53c5d6ea90e984971e9e532b3038ab71 [file] [log] [blame]
/**
* @license
* Copyright 2022 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import './gr-editor';
import './element/codemirror-element';
import {assert, fixture, html} from '@open-wc/testing';
import {GrEditor} from './gr-editor';
import {queryAndAssert} from './test/test-util';
import {PluginApi} from '@gerritcodereview/typescript-api/plugin';
import {CodeMirrorElement} from './element/codemirror-element';
suite('gr-editor tests', () => {
let element: GrEditor;
setup(async () => {
element = await fixture<GrEditor>(html`<gr-editor></gr-editor>`);
element.lineNum = 123;
element.prefs = {
match_brackets: true,
};
element.plugin = {
getPluginName: () => 'codemirror-editor',
url: () => 'http://test-host/test-path',
} as unknown as PluginApi;
await element.updateComplete;
});
teardown(() => {
const script = document.head.querySelector('#codemirror');
if (script) script.remove();
});
test('presence of script', () => {
const script = queryAndAssert<HTMLElement>(document.head, '#codemirror');
assert.equal(script.tagName, 'SCRIPT');
});
test('presence of codemirror-element', () => {
const cmElement = queryAndAssert<HTMLElement>(
element,
'codemirror-element'
);
assert.equal(cmElement.tagName, 'CODEMIRROR-ELEMENT');
});
test('properties of codemirror-element', () => {
const cmElement = queryAndAssert<CodeMirrorElement>(
element,
'codemirror-element'
);
assert.equal(cmElement.lineNum, 123);
assert.isTrue(cmElement.params?.matchBrackets);
});
});