eabb308ac2
* ui: Add ember steps:list command for listing available steps 1. Adds `command` addon to house the new command 2. Start to organize out the steps themselves, bring a bit more order to things ready to dedupe and cleanup
84 lines
2.2 KiB
JavaScript
84 lines
2.2 KiB
JavaScript
/* eslint no-console: "off" */
|
|
import Inflector from 'ember-inflector';
|
|
import utils from '@ember/test-helpers';
|
|
import getDictionary from '@hashicorp/ember-cli-api-double/dictionary';
|
|
|
|
import yadda from 'consul-ui/tests/helpers/yadda';
|
|
import pages from 'consul-ui/tests/pages';
|
|
import api from 'consul-ui/tests/helpers/api';
|
|
|
|
import steps from 'consul-ui/tests/steps';
|
|
|
|
const pluralize = function(str) {
|
|
return Inflector.inflector.pluralize(str);
|
|
};
|
|
export default function(assert) {
|
|
const library = yadda.localisation.English.library(
|
|
getDictionary(function(model, cb) {
|
|
switch (model) {
|
|
case 'datacenter':
|
|
case 'datacenters':
|
|
case 'dcs':
|
|
model = 'dc';
|
|
break;
|
|
case 'services':
|
|
model = 'service';
|
|
break;
|
|
case 'nodes':
|
|
model = 'node';
|
|
break;
|
|
case 'kvs':
|
|
model = 'kv';
|
|
break;
|
|
case 'acls':
|
|
model = 'acl';
|
|
break;
|
|
case 'sessions':
|
|
model = 'session';
|
|
break;
|
|
case 'intentions':
|
|
model = 'intention';
|
|
break;
|
|
}
|
|
cb(null, model);
|
|
}, yadda)
|
|
);
|
|
const create = function(number, name, value) {
|
|
// don't return a promise here as
|
|
// I don't need it to wait
|
|
api.server.createList(name, number, value);
|
|
};
|
|
const respondWith = function(url, data) {
|
|
api.server.respondWith(url.split('?')[0], data);
|
|
};
|
|
const setCookie = function(key, value) {
|
|
api.server.setCookie(key, value);
|
|
};
|
|
const getLastNthRequest = function(arr) {
|
|
return function(n, method) {
|
|
let requests = arr.slice(0).reverse();
|
|
if (method) {
|
|
requests = requests.filter(function(item) {
|
|
return item.method === method;
|
|
});
|
|
}
|
|
if (n == null) {
|
|
return requests;
|
|
}
|
|
return requests[n];
|
|
};
|
|
};
|
|
return steps(assert, library, pages, {
|
|
pluralize: pluralize,
|
|
triggerKeyEvent: utils.triggerKeyEvent,
|
|
currentURL: utils.currentURL,
|
|
click: utils.click,
|
|
fillIn: utils.fillIn,
|
|
find: utils.find,
|
|
lastNthRequest: getLastNthRequest(api.server.history),
|
|
respondWith: respondWith,
|
|
create: create,
|
|
set: setCookie,
|
|
});
|
|
}
|