2023-03-14 13:18:55 +00:00
|
|
|
/**
|
|
|
|
* Copyright (c) HashiCorp, Inc.
|
|
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
|
|
*/
|
|
|
|
|
2022-09-15 08:43:17 +00:00
|
|
|
export default function (scenario, create, set, win = window, doc = document) {
|
2019-02-21 13:05:05 +00:00
|
|
|
scenario
|
2022-09-15 08:43:17 +00:00
|
|
|
.given(['an external edit results in $number $model model[s]?'], function (number, model) {
|
2019-02-21 13:05:05 +00:00
|
|
|
return create(number, model);
|
|
|
|
})
|
2022-09-15 08:43:17 +00:00
|
|
|
.given(['$number $model model[s]?'], function (number, model) {
|
2019-02-21 13:05:05 +00:00
|
|
|
return create(number, model);
|
|
|
|
})
|
2022-09-15 08:43:17 +00:00
|
|
|
.given(['$number $model model[s]? with the value "$value"'], function (number, model, value) {
|
2021-09-22 17:26:36 +00:00
|
|
|
if (model === 'dc') {
|
|
|
|
doc.cookie = `CONSUL_DATACENTER_LOCAL=${value}`;
|
|
|
|
}
|
2019-02-21 13:05:05 +00:00
|
|
|
return create(number, model, value);
|
|
|
|
})
|
|
|
|
.given(
|
|
|
|
['$number $model model[s]? from yaml\n$yaml', '$number $model model[s]? from json\n$json'],
|
2022-09-15 08:43:17 +00:00
|
|
|
function (number, model, data) {
|
2021-09-22 17:26:36 +00:00
|
|
|
if (model === 'dc') {
|
|
|
|
doc.cookie = `CONSUL_DATACENTER_LOCAL=${data[0]}`;
|
|
|
|
}
|
2019-02-21 13:05:05 +00:00
|
|
|
return create(number, model, data);
|
|
|
|
}
|
2020-11-11 16:59:15 +00:00
|
|
|
)
|
2022-09-15 08:43:17 +00:00
|
|
|
.given(['settings from yaml\n$yaml'], function (data) {
|
|
|
|
return Object.keys(data).forEach(function (key) {
|
2020-12-15 15:34:54 +00:00
|
|
|
win.localStorage[key] = JSON.stringify(data[key]);
|
2019-02-21 13:05:05 +00:00
|
|
|
});
|
2020-12-15 15:34:54 +00:00
|
|
|
})
|
2022-09-15 08:43:17 +00:00
|
|
|
.given(['ui_config from yaml\n$yaml'], function (data) {
|
2021-02-19 16:42:16 +00:00
|
|
|
// this one doesn't interact with the api therefore you don't need to use
|
|
|
|
// setCookie/set. Ideally setCookie should probably use doc.cookie also so
|
|
|
|
// there is no difference between these
|
2020-12-15 15:34:54 +00:00
|
|
|
doc.cookie = `CONSUL_UI_CONFIG=${JSON.stringify(data)}`;
|
2021-02-18 18:31:49 +00:00
|
|
|
})
|
2022-09-15 08:43:17 +00:00
|
|
|
.given(['the local datacenter is "$value"'], function (value) {
|
2021-02-18 18:31:49 +00:00
|
|
|
doc.cookie = `CONSUL_DATACENTER_LOCAL=${value}`;
|
2021-02-19 16:42:16 +00:00
|
|
|
})
|
2022-09-15 08:43:17 +00:00
|
|
|
.given(['ACLs are disabled'], function () {
|
2021-07-14 17:52:13 +00:00
|
|
|
doc.cookie = `CONSUL_ACLS_ENABLE=0`;
|
|
|
|
})
|
2022-09-15 08:43:17 +00:00
|
|
|
.given(['SSO is enabled'], function () {
|
2022-01-11 11:02:46 +00:00
|
|
|
doc.cookie = `CONSUL_SSO_ENABLE=1`;
|
|
|
|
set('CONSUL_SSO_ENABLE', 1);
|
|
|
|
})
|
2022-09-15 08:43:17 +00:00
|
|
|
.given(['partitions are enabled'], function () {
|
2022-01-11 11:02:46 +00:00
|
|
|
doc.cookie = `CONSUL_PARTITIONS_ENABLE=1`;
|
|
|
|
set('CONSUL_PARTITIONS_ENABLE', 1);
|
|
|
|
})
|
2022-09-15 08:43:17 +00:00
|
|
|
.given(['the default ACL policy is "$policy"'], function (policy) {
|
2021-10-12 13:27:06 +00:00
|
|
|
set('CONSUL_ACL_POLICY', policy);
|
|
|
|
})
|
2022-09-15 08:43:17 +00:00
|
|
|
.given(['a "$value" metrics provider'], function (value) {
|
2021-07-20 15:09:15 +00:00
|
|
|
doc.cookie = `CONSUL_METRICS_PROXY_ENABLE=1`;
|
|
|
|
doc.cookie = `CONSUL_METRICS_PROVIDER=${value}`;
|
|
|
|
})
|
2022-09-15 08:43:17 +00:00
|
|
|
.given(['permissions from yaml\n$yaml'], function (data) {
|
2021-02-19 16:42:16 +00:00
|
|
|
Object.entries(data).forEach(([key, value]) => {
|
|
|
|
const resource = `CONSUL_RESOURCE_${key.toUpperCase()}`;
|
|
|
|
Object.entries(value).forEach(([key, value]) => {
|
|
|
|
set(`${resource}_${key.toUpperCase()}`, value);
|
|
|
|
});
|
|
|
|
});
|
2019-02-21 13:05:05 +00:00
|
|
|
});
|
|
|
|
}
|