Merge "Add ability to not pass in the server config to the gr-change-view"

This commit is contained in:
Wyatt Allen
2017-06-13 22:53:34 +00:00
committed by Gerrit Code Review
3 changed files with 30 additions and 16 deletions

View File

@@ -76,14 +76,14 @@
}, },
backPage: String, backPage: String,
hasParent: Boolean, hasParent: Boolean,
serverConfig: {
type: Object,
observer: '_startUpdateCheckTimer',
},
keyEventTarget: { keyEventTarget: {
type: Object, type: Object,
value() { return document.body; }, value() { return document.body; },
}, },
_serverConfig: {
type: Object,
observer: '_startUpdateCheckTimer',
},
_diffPrefs: Object, _diffPrefs: Object,
_numFilesShown: { _numFilesShown: {
type: Number, type: Number,
@@ -165,7 +165,7 @@
_replyDisabled: { _replyDisabled: {
type: Boolean, type: Boolean,
value: true, value: true,
computed: '_computeReplyDisabled(serverConfig)', computed: '_computeReplyDisabled(_serverConfig)',
}, },
_changeStatus: { _changeStatus: {
type: String, type: String,
@@ -206,6 +206,10 @@
}, },
attached() { attached() {
this._getServerConfig().then(config => {
this._serverConfig = config;
});
this._getLoggedIn().then(loggedIn => { this._getLoggedIn().then(loggedIn => {
this._loggedIn = loggedIn; this._loggedIn = loggedIn;
if (loggedIn) { if (loggedIn) {
@@ -900,6 +904,10 @@
return this.$.restAPI.getLoggedIn(); return this.$.restAPI.getLoggedIn();
}, },
_getServerConfig() {
return this.$.restAPI.getConfig();
},
_getProjectConfig() { _getProjectConfig() {
return this.$.restAPI.getProjectConfig(this._change.project).then( return this.$.restAPI.getProjectConfig(this._change.project).then(
config => { config => {
@@ -1256,10 +1264,10 @@
}, },
_startUpdateCheckTimer() { _startUpdateCheckTimer() {
if (!this.serverConfig || if (!this._serverConfig ||
!this.serverConfig.change || !this._serverConfig.change ||
this.serverConfig.change.update_delay === undefined || this._serverConfig.change.update_delay === undefined ||
this.serverConfig.change.update_delay <= MIN_CHECK_INTERVAL_SECS) { this._serverConfig.change.update_delay <= MIN_CHECK_INTERVAL_SECS) {
return; return;
} }
@@ -1283,7 +1291,7 @@
}); });
} }
}); });
}, this.serverConfig.change.update_delay * 1000); }, this._serverConfig.change.update_delay * 1000);
}, },
_cancelUpdateCheckTimer() { _cancelUpdateCheckTimer() {

View File

@@ -44,7 +44,7 @@ limitations under the License.
sandbox = sinon.sandbox.create(); sandbox = sinon.sandbox.create();
showStub = sandbox.stub(page, 'show'); showStub = sandbox.stub(page, 'show');
stub('gr-rest-api-interface', { stub('gr-rest-api-interface', {
getConfig() { return Promise.resolve({}); }, getConfig() { return Promise.resolve({test: 'config'}); },
getAccount() { return Promise.resolve(null); }, getAccount() { return Promise.resolve(null); },
}); });
element = fixture('basic'); element = fixture('basic');
@@ -167,6 +167,13 @@ limitations under the License.
}); });
}); });
test('fetches the server config on attached', done => {
flush(() => {
assert.equal(element._serverConfig.test, 'config');
done();
});
});
test('Diff preferences hidden when no prefs or logged out', () => { test('Diff preferences hidden when no prefs or logged out', () => {
element._loggedIn = false; element._loggedIn = false;
flushAsynchronousOperations(); flushAsynchronousOperations();
@@ -1125,7 +1132,7 @@ limitations under the License.
test('reply button is disabled until server config is loaded', () => { test('reply button is disabled until server config is loaded', () => {
assert.isTrue(element._replyDisabled); assert.isTrue(element._replyDisabled);
element.serverConfig = {}; element._serverConfig = {};
assert.isFalse(element._replyDisabled); assert.isFalse(element._replyDisabled);
}); });
@@ -1278,7 +1285,7 @@ limitations under the License.
test('_startUpdateCheckTimer negative delay', () => { test('_startUpdateCheckTimer negative delay', () => {
sandbox.stub(element, 'fetchIsLatestKnown'); sandbox.stub(element, 'fetchIsLatestKnown');
element.serverConfig = {change: {update_delay: -1}}; element._serverConfig = {change: {update_delay: -1}};
assert.isTrue(element._startUpdateCheckTimer.called); assert.isTrue(element._startUpdateCheckTimer.called);
assert.isFalse(element.fetchIsLatestKnown.called); assert.isFalse(element.fetchIsLatestKnown.called);
@@ -1288,7 +1295,7 @@ limitations under the License.
sandbox.stub(element, 'fetchIsLatestKnown', sandbox.stub(element, 'fetchIsLatestKnown',
() => { return Promise.resolve(true); }); () => { return Promise.resolve(true); });
element.serverConfig = {change: {update_delay: 12345}}; element._serverConfig = {change: {update_delay: 12345}};
assert.isTrue(element._startUpdateCheckTimer.called); assert.isTrue(element._startUpdateCheckTimer.called);
assert.isTrue(element.fetchIsLatestKnown.called); assert.isTrue(element.fetchIsLatestKnown.called);
@@ -1301,7 +1308,7 @@ limitations under the License.
element.addEventListener('show-alert', () => { element.addEventListener('show-alert', () => {
done(); done();
}); });
element.serverConfig = {change: {update_delay: 12345}}; element._serverConfig = {change: {update_delay: 12345}};
}); });
}); });

View File

@@ -127,7 +127,6 @@ limitations under the License.
<template is="dom-if" if="[[_showChangeView]]" restamp="true"> <template is="dom-if" if="[[_showChangeView]]" restamp="true">
<gr-change-view <gr-change-view
params="[[params]]" params="[[params]]"
server-config="[[_serverConfig]]"
view-state="{{_viewState.changeView}}" view-state="{{_viewState.changeView}}"
back-page="[[_lastSearchPage]]"></gr-change-view> back-page="[[_lastSearchPage]]"></gr-change-view>
</template> </template>