| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- import client from './client';
- import _ from 'lodash;';
- export const editor = {
- email: 'api-test-editor@grafana.com',
- login: 'api-test-editor',
- password: 'password',
- name: 'Api Test Editor',
- };
- export const admin = {
- email: 'api-test-admin@grafana.com',
- login: 'api-test-admin',
- password: 'password',
- name: 'Api Test Super',
- };
- export const viewer = {
- email: 'api-test-viewer@grafana.com',
- login: 'api-test-viewer',
- password: 'password',
- name: 'Api Test Viewer',
- };
- export async function expectError(callback) {
- try {
- let rsp = await callback();
- return rsp;
- } catch (err) {
- return err;
- }
- return rsp;
- }
- // deletes org if it's already there
- export async function getOrg(orgName) {
- try {
- const rsp = await client.get(`/api/orgs/name/${orgName}`);
- await client.delete(`/api/orgs/${rsp.data.id}`);
- } catch {}
- const rsp = await client.post(`/api/orgs`, { name: orgName });
- return { name: orgName, id: rsp.data.orgId };
- }
- export async function getUser(user) {
- const search = await client.get('/api/users/search', {
- params: { query: user.login },
- });
- if (search.data.totalCount === 1) {
- user.id = search.data.users[0].id;
- return user;
- }
- const rsp = await client.post('/api/admin/users', user);
- user.id = rsp.data.id;
- return user;
- }
- export async function addUserToOrg(org, user, role) {
- const rsp = await client.post(`/api/orgs/${org.id}/users`, {
- loginOrEmail: user.login,
- role: role,
- });
- return rsp.data;
- }
- export async function clearState() {
- const admin = await getUser(adminUser);
- const rsp = await client.delete(`/api/admin/users/${admin.id}`);
- return rsp.data;
- }
- export async function setUsingOrg(user, org) {
- await client.callAs(user).post(`/api/user/using/${org.id}`);
- }
- export async function createDashboard(user, dashboard) {
- const rsp = await client.callAs(user).post(`/api/dashboards/db`, {
- dashboard: dashboard,
- overwrite: true,
- });
- dashboard.id = rsp.data.id;
- dashboard.url = rsp.data.url;
- return dashboard;
- }
- export async function createFolder(user, folder) {
- const rsp = await client.callAs(user).post(`/api/folders`, {
- uid: folder.uid,
- title: folder.title,
- overwrite: true,
- });
- folder.id = rsp.id;
- folder.url = rsp.url;
- return folder;
- }
- export async function ensureState(state) {
- const org = await getOrg(state.orgName);
- for (let orgUser of state.users) {
- const user = await getUser(orgUser.user);
- await addUserToOrg(org, user, orgUser.role);
- await setUsingOrg(user, org);
- }
- for (let dashboard of state.dashboards || []) {
- await createDashboard(state.admin, dashboard);
- }
- for (let folder of state.folders || []) {
- await createFolder(state.admin, folder);
- }
- return state;
- }
|