open-consul/ui/packages/consul-ui/tests/steps/interactions/visit.js

47 lines
1.3 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { visit } from '@ember/test-helpers';
export default function (scenario, pages, set, reset) {
scenario
.when('I visit the $name page', function (name) {
reset();
return set(pages[name]).visit();
})
.when('I visit the $name page for the "$id" $model', function (name, id, model) {
reset();
return set(pages[name]).visit({
[model]: id,
});
})
.when('I visit the $name page with the url $url', function (name, url) {
reset();
set(pages[name]);
return visit(url);
})
.when(
['I visit the $name page for yaml\n$yaml', 'I visit the $name page for json\n$json'],
function (name, data) {
const nspace = this.ctx.nspace;
if (nspace !== '' && typeof nspace !== 'undefined') {
data.nspace = `~${nspace}`;
}
reset();
// TODO: Consider putting an assertion here for testing the current url
// do I absolutely definitely need that all the time?
return set(pages[name]).visit(data);
}
)
.when(
['I $method the $name page for yaml\n$yaml', 'I $method the $name page for json\n$json'],
function (method, name, data) {
reset();
return set(pages[name])[method](data);
}
);
}