Convert polygerrit to es6-modules
This change replace all HTML imports with es6-modules. The only exceptions are:
* gr-app.html file, which can be deleted only after updating the
gerrit/httpd/raw/PolyGerritIndexHtml.soy file.
* dark-theme.html which is loaded via importHref. Must be updated manually
later in a separate change.
This change was produced automatically by ./es6-modules-converter.sh script.
No manual changes were made.
Change-Id: I0c447dd8c05757741e2c940720652d01d9fb7d67
diff --git a/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list_test.html b/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list_test.html
index be65a86..627fa10 100644
--- a/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list_test.html
+++ b/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list_test.html
@@ -19,15 +19,20 @@
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
<title>gr-reviewer-list</title>
-<script src="/bower_components/webcomponentsjs/custom-elements-es5-adapter.js"></script>
+<script src="/node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js"></script>
-<script src="/bower_components/webcomponentsjs/webcomponents-lite.js"></script>
-<script src="/bower_components/web-component-tester/browser.js"></script>
-<script src="../../../test/test-pre-setup.js"></script>
-<link rel="import" href="../../../test/common-test-setup.html"/>
-<link rel="import" href="gr-reviewer-list.html">
+<script src="/node_modules/@webcomponents/webcomponentsjs/webcomponents-lite.js"></script>
+<script src="/components/wct-browser-legacy/browser.js"></script>
+<script type="module" src="../../../test/test-pre-setup.js"></script>
+<script type="module" src="../../../test/common-test-setup.js"></script>
+<script type="module" src="./gr-reviewer-list.js"></script>
-<script>void(0);</script>
+<script type="module">
+import '../../../test/test-pre-setup.js';
+import '../../../test/common-test-setup.js';
+import './gr-reviewer-list.js';
+void(0);
+</script>
<test-fixture id="basic">
<template>
@@ -35,78 +40,66 @@
</template>
</test-fixture>
-<script>
- suite('gr-reviewer-list tests', async () => {
- await readyToTest();
- let element;
- let sandbox;
+<script type="module">
+import '../../../test/test-pre-setup.js';
+import '../../../test/common-test-setup.js';
+import './gr-reviewer-list.js';
+import {dom} from '@polymer/polymer/lib/legacy/polymer.dom.js';
+suite('gr-reviewer-list tests', () => {
+ let element;
+ let sandbox;
- setup(() => {
- element = fixture('basic');
- sandbox = sinon.sandbox.create();
- stub('gr-rest-api-interface', {
- getConfig() { return Promise.resolve({}); },
- removeChangeReviewer() {
- return Promise.resolve({ok: true});
- },
- });
+ setup(() => {
+ element = fixture('basic');
+ sandbox = sinon.sandbox.create();
+ stub('gr-rest-api-interface', {
+ getConfig() { return Promise.resolve({}); },
+ removeChangeReviewer() {
+ return Promise.resolve({ok: true});
+ },
});
+ });
- teardown(() => {
- sandbox.restore();
+ teardown(() => {
+ sandbox.restore();
+ });
+
+ test('controls hidden on immutable element', () => {
+ element.mutable = false;
+ assert.isTrue(element.shadowRoot
+ .querySelector('.controlsContainer').hasAttribute('hidden'));
+ element.mutable = true;
+ assert.isFalse(element.shadowRoot
+ .querySelector('.controlsContainer').hasAttribute('hidden'));
+ });
+
+ test('add reviewer button opens reply dialog', done => {
+ element.addEventListener('show-reply-dialog', () => {
+ done();
});
+ MockInteractions.tap(element.shadowRoot
+ .querySelector('.addReviewer'));
+ });
- test('controls hidden on immutable element', () => {
- element.mutable = false;
- assert.isTrue(element.shadowRoot
- .querySelector('.controlsContainer').hasAttribute('hidden'));
- element.mutable = true;
- assert.isFalse(element.shadowRoot
- .querySelector('.controlsContainer').hasAttribute('hidden'));
- });
-
- test('add reviewer button opens reply dialog', done => {
- element.addEventListener('show-reply-dialog', () => {
- done();
- });
- MockInteractions.tap(element.shadowRoot
- .querySelector('.addReviewer'));
- });
-
- test('only show remove for removable reviewers', () => {
- element.mutable = true;
- element.change = {
- owner: {
- _account_id: 1,
- },
- reviewers: {
- REVIEWER: [
- {
- _account_id: 2,
- name: 'Bojack Horseman',
- email: 'SecretariatRulez96@hotmail.com',
- },
- {
- _account_id: 3,
- name: 'Pinky Penguin',
- },
- ],
- CC: [
- {
- _account_id: 4,
- name: 'Diane Nguyen',
- email: 'macarthurfellow2B@juno.com',
- },
- {
- email: 'test@e.mail',
- },
- ],
- },
- removable_reviewers: [
+ test('only show remove for removable reviewers', () => {
+ element.mutable = true;
+ element.change = {
+ owner: {
+ _account_id: 1,
+ },
+ reviewers: {
+ REVIEWER: [
+ {
+ _account_id: 2,
+ name: 'Bojack Horseman',
+ email: 'SecretariatRulez96@hotmail.com',
+ },
{
_account_id: 3,
name: 'Pinky Penguin',
},
+ ],
+ CC: [
{
_account_id: 4,
name: 'Diane Nguyen',
@@ -116,230 +109,245 @@
email: 'test@e.mail',
},
],
- };
- flushAsynchronousOperations();
- const chips =
- Polymer.dom(element.root).querySelectorAll('gr-account-chip');
- assert.equal(chips.length, 4);
+ },
+ removable_reviewers: [
+ {
+ _account_id: 3,
+ name: 'Pinky Penguin',
+ },
+ {
+ _account_id: 4,
+ name: 'Diane Nguyen',
+ email: 'macarthurfellow2B@juno.com',
+ },
+ {
+ email: 'test@e.mail',
+ },
+ ],
+ };
+ flushAsynchronousOperations();
+ const chips =
+ dom(element.root).querySelectorAll('gr-account-chip');
+ assert.equal(chips.length, 4);
- for (const el of Array.from(chips)) {
- const accountID = el.account._account_id || el.account.email;
- assert.ok(accountID);
+ for (const el of Array.from(chips)) {
+ const accountID = el.account._account_id || el.account.email;
+ assert.ok(accountID);
- const buttonEl = el.shadowRoot
- .querySelector('gr-button');
- assert.isNotNull(buttonEl);
- if (accountID == 2) {
- assert.isTrue(buttonEl.hasAttribute('hidden'));
- } else {
- assert.isFalse(buttonEl.hasAttribute('hidden'));
- }
+ const buttonEl = el.shadowRoot
+ .querySelector('gr-button');
+ assert.isNotNull(buttonEl);
+ if (accountID == 2) {
+ assert.isTrue(buttonEl.hasAttribute('hidden'));
+ } else {
+ assert.isFalse(buttonEl.hasAttribute('hidden'));
}
- });
-
- test('tracking reviewers and ccs', () => {
- let counter = 0;
- function makeAccount() {
- return {_account_id: counter++};
- }
-
- const owner = makeAccount();
- const reviewer = makeAccount();
- const cc = makeAccount();
- const reviewers = {
- REMOVED: [makeAccount()],
- REVIEWER: [owner, reviewer],
- CC: [owner, cc],
- };
-
- element.ccsOnly = false;
- element.reviewersOnly = false;
- element.change = {
- owner,
- reviewers,
- };
- assert.deepEqual(element._reviewers, [reviewer, cc]);
-
- element.reviewersOnly = true;
- element.change = {
- owner,
- reviewers,
- };
- assert.deepEqual(element._reviewers, [reviewer]);
-
- element.ccsOnly = true;
- element.reviewersOnly = false;
- element.change = {
- owner,
- reviewers,
- };
- assert.deepEqual(element._reviewers, [cc]);
- });
-
- test('_handleAddTap passes mode with event', () => {
- const fireStub = sandbox.stub(element, 'fire');
- const e = {preventDefault() {}};
-
- element.ccsOnly = false;
- element.reviewersOnly = false;
- element._handleAddTap(e);
- assert.isTrue(fireStub.calledWith('show-reply-dialog', {value: {}}));
-
- element.reviewersOnly = true;
- element._handleAddTap(e);
- assert.isTrue(fireStub.lastCall.calledWith('show-reply-dialog',
- {value: {reviewersOnly: true}}));
-
- element.ccsOnly = true;
- element.reviewersOnly = false;
- element._handleAddTap(e);
- assert.isTrue(fireStub.lastCall.calledWith('show-reply-dialog',
- {value: {ccsOnly: true}}));
- });
-
- test('no show all reviewers button with 6 reviewers', () => {
- const reviewers = [];
- element.maxReviewersDisplayed = 5;
- for (let i = 0; i < 6; i++) {
- reviewers.push(
- {email: i+'reviewer@google.com', name: 'reviewer-' + i});
- }
- element.ccsOnly = true;
-
- element.change = {
- owner: {
- _account_id: 1,
- },
- reviewers: {
- CC: reviewers,
- },
- };
- assert.equal(element._hiddenReviewerCount, 0);
- assert.equal(element._displayedReviewers.length, 6);
- assert.equal(element._reviewers.length, 6);
- assert.isTrue(element.shadowRoot
- .querySelector('.hiddenReviewers').hidden);
- });
-
- test('show all reviewers button with 8 reviewers', () => {
- const reviewers = [];
- element.maxReviewersDisplayed = 5;
- for (let i = 0; i < 8; i++) {
- reviewers.push(
- {email: i+'reviewer@google.com', name: 'reviewer-' + i});
- }
- element.ccsOnly = true;
-
- element.change = {
- owner: {
- _account_id: 1,
- },
- reviewers: {
- CC: reviewers,
- },
- };
- assert.equal(element._hiddenReviewerCount, 3);
- assert.equal(element._displayedReviewers.length, 5);
- assert.equal(element._reviewers.length, 8);
- assert.isFalse(element.shadowRoot
- .querySelector('.hiddenReviewers').hidden);
- });
-
- test('no maxReviewersDisplayed', () => {
- const reviewers = [];
- for (let i = 0; i < 7; i++) {
- reviewers.push(
- {email: i+'reviewer@google.com', name: 'reviewer-' + i});
- }
- element.ccsOnly = true;
-
- element.change = {
- owner: {
- _account_id: 1,
- },
- reviewers: {
- CC: reviewers,
- },
- };
- assert.equal(element._hiddenReviewerCount, 0);
- assert.equal(element._displayedReviewers.length, 7);
- assert.equal(element._reviewers.length, 7);
- assert.isTrue(element.shadowRoot
- .querySelector('.hiddenReviewers').hidden);
- });
-
- test('show all reviewers button', () => {
- const reviewers = [];
- element.maxReviewersDisplayed = 5;
- for (let i = 0; i < 100; i++) {
- reviewers.push(
- {email: i+'reviewer@google.com', name: 'reviewer-' + i});
- }
- element.ccsOnly = true;
-
- element.change = {
- owner: {
- _account_id: 1,
- },
- reviewers: {
- CC: reviewers,
- },
- };
- assert.equal(element._hiddenReviewerCount, 95);
- assert.equal(element._displayedReviewers.length, 5);
- assert.equal(element._reviewers.length, 100);
- assert.isFalse(element.shadowRoot
- .querySelector('.hiddenReviewers').hidden);
-
- MockInteractions.tap(element.shadowRoot
- .querySelector('.hiddenReviewers'));
-
- assert.equal(element._hiddenReviewerCount, 0);
- assert.equal(element._displayedReviewers.length, 100);
- assert.equal(element._reviewers.length, 100);
- assert.isTrue(element.shadowRoot
- .querySelector('.hiddenReviewers').hidden);
- });
-
- test('votable labels', () => {
- const change = {
- labels: {
- Foo: {
- all: [{_account_id: 7, permitted_voting_range: {max: 2}}],
- },
- Bar: {
- all: [{_account_id: 1, permitted_voting_range: {max: 1}},
- {_account_id: 7, permitted_voting_range: {max: 1}}],
- },
- FooBar: {
- all: [{_account_id: 7, value: 0}],
- },
- },
- permitted_labels: {
- Foo: ['-1', ' 0', '+1', '+2'],
- FooBar: ['-1', ' 0'],
- },
- };
- assert.strictEqual(
- element._computeReviewerTooltip({_account_id: 1}, change),
- 'Votable: Bar');
- assert.strictEqual(
- element._computeReviewerTooltip({_account_id: 7}, change),
- 'Votable: Foo: +2, Bar, FooBar');
- assert.strictEqual(
- element._computeReviewerTooltip({_account_id: 2}, change),
- '');
- });
-
- test('fails gracefully when all is not included', () => {
- const change = {
- labels: {Foo: {}},
- permitted_labels: {
- Foo: ['-1', ' 0', '+1', '+2'],
- },
- };
- assert.strictEqual(
- element._computeReviewerTooltip({_account_id: 1}, change), '');
- });
+ }
});
+
+ test('tracking reviewers and ccs', () => {
+ let counter = 0;
+ function makeAccount() {
+ return {_account_id: counter++};
+ }
+
+ const owner = makeAccount();
+ const reviewer = makeAccount();
+ const cc = makeAccount();
+ const reviewers = {
+ REMOVED: [makeAccount()],
+ REVIEWER: [owner, reviewer],
+ CC: [owner, cc],
+ };
+
+ element.ccsOnly = false;
+ element.reviewersOnly = false;
+ element.change = {
+ owner,
+ reviewers,
+ };
+ assert.deepEqual(element._reviewers, [reviewer, cc]);
+
+ element.reviewersOnly = true;
+ element.change = {
+ owner,
+ reviewers,
+ };
+ assert.deepEqual(element._reviewers, [reviewer]);
+
+ element.ccsOnly = true;
+ element.reviewersOnly = false;
+ element.change = {
+ owner,
+ reviewers,
+ };
+ assert.deepEqual(element._reviewers, [cc]);
+ });
+
+ test('_handleAddTap passes mode with event', () => {
+ const fireStub = sandbox.stub(element, 'fire');
+ const e = {preventDefault() {}};
+
+ element.ccsOnly = false;
+ element.reviewersOnly = false;
+ element._handleAddTap(e);
+ assert.isTrue(fireStub.calledWith('show-reply-dialog', {value: {}}));
+
+ element.reviewersOnly = true;
+ element._handleAddTap(e);
+ assert.isTrue(fireStub.lastCall.calledWith('show-reply-dialog',
+ {value: {reviewersOnly: true}}));
+
+ element.ccsOnly = true;
+ element.reviewersOnly = false;
+ element._handleAddTap(e);
+ assert.isTrue(fireStub.lastCall.calledWith('show-reply-dialog',
+ {value: {ccsOnly: true}}));
+ });
+
+ test('no show all reviewers button with 6 reviewers', () => {
+ const reviewers = [];
+ element.maxReviewersDisplayed = 5;
+ for (let i = 0; i < 6; i++) {
+ reviewers.push(
+ {email: i+'reviewer@google.com', name: 'reviewer-' + i});
+ }
+ element.ccsOnly = true;
+
+ element.change = {
+ owner: {
+ _account_id: 1,
+ },
+ reviewers: {
+ CC: reviewers,
+ },
+ };
+ assert.equal(element._hiddenReviewerCount, 0);
+ assert.equal(element._displayedReviewers.length, 6);
+ assert.equal(element._reviewers.length, 6);
+ assert.isTrue(element.shadowRoot
+ .querySelector('.hiddenReviewers').hidden);
+ });
+
+ test('show all reviewers button with 8 reviewers', () => {
+ const reviewers = [];
+ element.maxReviewersDisplayed = 5;
+ for (let i = 0; i < 8; i++) {
+ reviewers.push(
+ {email: i+'reviewer@google.com', name: 'reviewer-' + i});
+ }
+ element.ccsOnly = true;
+
+ element.change = {
+ owner: {
+ _account_id: 1,
+ },
+ reviewers: {
+ CC: reviewers,
+ },
+ };
+ assert.equal(element._hiddenReviewerCount, 3);
+ assert.equal(element._displayedReviewers.length, 5);
+ assert.equal(element._reviewers.length, 8);
+ assert.isFalse(element.shadowRoot
+ .querySelector('.hiddenReviewers').hidden);
+ });
+
+ test('no maxReviewersDisplayed', () => {
+ const reviewers = [];
+ for (let i = 0; i < 7; i++) {
+ reviewers.push(
+ {email: i+'reviewer@google.com', name: 'reviewer-' + i});
+ }
+ element.ccsOnly = true;
+
+ element.change = {
+ owner: {
+ _account_id: 1,
+ },
+ reviewers: {
+ CC: reviewers,
+ },
+ };
+ assert.equal(element._hiddenReviewerCount, 0);
+ assert.equal(element._displayedReviewers.length, 7);
+ assert.equal(element._reviewers.length, 7);
+ assert.isTrue(element.shadowRoot
+ .querySelector('.hiddenReviewers').hidden);
+ });
+
+ test('show all reviewers button', () => {
+ const reviewers = [];
+ element.maxReviewersDisplayed = 5;
+ for (let i = 0; i < 100; i++) {
+ reviewers.push(
+ {email: i+'reviewer@google.com', name: 'reviewer-' + i});
+ }
+ element.ccsOnly = true;
+
+ element.change = {
+ owner: {
+ _account_id: 1,
+ },
+ reviewers: {
+ CC: reviewers,
+ },
+ };
+ assert.equal(element._hiddenReviewerCount, 95);
+ assert.equal(element._displayedReviewers.length, 5);
+ assert.equal(element._reviewers.length, 100);
+ assert.isFalse(element.shadowRoot
+ .querySelector('.hiddenReviewers').hidden);
+
+ MockInteractions.tap(element.shadowRoot
+ .querySelector('.hiddenReviewers'));
+
+ assert.equal(element._hiddenReviewerCount, 0);
+ assert.equal(element._displayedReviewers.length, 100);
+ assert.equal(element._reviewers.length, 100);
+ assert.isTrue(element.shadowRoot
+ .querySelector('.hiddenReviewers').hidden);
+ });
+
+ test('votable labels', () => {
+ const change = {
+ labels: {
+ Foo: {
+ all: [{_account_id: 7, permitted_voting_range: {max: 2}}],
+ },
+ Bar: {
+ all: [{_account_id: 1, permitted_voting_range: {max: 1}},
+ {_account_id: 7, permitted_voting_range: {max: 1}}],
+ },
+ FooBar: {
+ all: [{_account_id: 7, value: 0}],
+ },
+ },
+ permitted_labels: {
+ Foo: ['-1', ' 0', '+1', '+2'],
+ FooBar: ['-1', ' 0'],
+ },
+ };
+ assert.strictEqual(
+ element._computeReviewerTooltip({_account_id: 1}, change),
+ 'Votable: Bar');
+ assert.strictEqual(
+ element._computeReviewerTooltip({_account_id: 7}, change),
+ 'Votable: Foo: +2, Bar, FooBar');
+ assert.strictEqual(
+ element._computeReviewerTooltip({_account_id: 2}, change),
+ '');
+ });
+
+ test('fails gracefully when all is not included', () => {
+ const change = {
+ labels: {Foo: {}},
+ permitted_labels: {
+ Foo: ['-1', ' 0', '+1', '+2'],
+ },
+ };
+ assert.strictEqual(
+ element._computeReviewerTooltip({_account_id: 1}, change), '');
+ });
+});
</script>