Unverified Commit 2c6ddccc authored by Sean Hammond's avatar Sean Hammond Committed by GitHub

Merge pull request #581 from hypothesis/fix-config-default-value-in-extension

Fix default values for settings not being used in the browser extension
parents 2365de71 e2373c72
......@@ -139,9 +139,10 @@ function settingsFrom(window_) {
function hostPageSetting(name, options = {}) {
var allowInBrowserExt = options.allowInBrowserExt || false;
var hasDefaultValue = typeof options.defaultValue !== 'undefined';
if (!allowInBrowserExt && isBrowserExtension(sidebarAppUrl())) {
return null;
return hasDefaultValue ? options.defaultValue : null;
}
if (configFuncSettings.hasOwnProperty(name)) {
......@@ -152,7 +153,7 @@ function settingsFrom(window_) {
return jsonConfigs[name];
}
if (typeof options.defaultValue !== 'undefined') {
if (hasDefaultValue) {
return options.defaultValue;
}
......
......@@ -514,17 +514,17 @@ describe('annotator.config.settingsFrom', function() {
expected: 'jsonValue',
},
{
when: 'the defaultValue is null',
when: 'no default value is provided',
specify: 'it returns null',
isBrowserExtension: false,
allowInBrowserExt: false,
configFuncSettings: {},
jsonSettings: {},
defaultValue: null,
defaultValue: undefined,
expected: null,
},
{
when: 'the defaultValue is specified',
when: 'a default value is provided',
specify: 'it returns that default value',
isBrowserExtension: false,
allowInBrowserExt: false,
......@@ -533,6 +533,26 @@ describe('annotator.config.settingsFrom', function() {
defaultValue: 'test value',
expected: 'test value',
},
{
when: 'a default value is provided but it is overridden',
specify: 'it returns the overridden value',
isBrowserExtension: false,
allowInBrowserExt: false,
configFuncSettings: { foo: 'not the default value' },
jsonSettings: {},
defaultValue: 'the default value',
expected: 'not the default value',
},
{
when: 'the client is in a browser extension and a default value is provided',
specify: 'it returns the default value',
isBrowserExtension: true,
allowInBrowserExt: false,
configFuncSettings: { foo: 'ignore me' },
jsonSettings: { foo: 'also ignore me' },
defaultValue: 'the default value',
expected: 'the default value',
},
].forEach(function(test) {
context(test.when, function() {
specify(test.specify, function() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment