Script Mágico uMock

Create, Check, Remove, Check

by Rodrigo Portillo

JavaScript

var XMLHttpRequest = require('xhr2');
var xhr = new XMLHttpRequest();
 
const base_url = "https://60d07a397de0b20017108cab.mockapi.io/";

const request = obj => {
    return new Promise((resolve, reject) => {
        let xhr = new XMLHttpRequest();
        xhr.open(obj.method || "GET", obj.url);
        if (obj.headers) {
            Object.keys(obj.headers).forEach(key => {
                xhr.setRequestHeader(key, obj.headers[key]);
            });
        }
        xhr.responseType = 'json';
        xhr.onload = () => {
            if (xhr.status >= 200 && xhr.status < 300) {
                resolve(xhr);
            } else {
                reject(xhr);
            }
        };
        xhr.onerror = () => reject(xhr.statusText);
        xhr.send(obj.body);
    });
};

async function run(){
	let item = {};
	var steps = [];
	//Create
  await request({url: `${base_url}broker/instance`, method: "POST"})
    .then(data => {
      item = data.response;
      steps.push(`Creating object id ${item.id}. Status: ${data.status}`);
    })
    .catch(error => {
    steps.push(`Failed. Status: ${error.status}`);
  });

	//Check Create
  await request({url: `${base_url}broker/instance/${item.id}`, method: "GET"})
    .then(data => {
    	item = data.response;
      steps.push(`Confirmed ${item.id} creation. Status: ${data.status}`);
    })
    .catch(error => {
    steps.push(`Failed to create object. Status: ${error.status}`);
  });
  
  //Remove
  await request({url: `${base_url}broker/instance/${item.id}`, method: "DELETE"})
    .then(data => {
      steps.push(`Removing object id ${item.id}. Status: ${data.status}`);
    })
    .catch(error => {
    steps.push(`Failed to remove object ${item.id}. Status: ${error.status}`);
  });
  
  //Check Remove
  await request({url: `${base_url}broker/instance/${item.id}`, method: "GET"})
    .then(data => {
    	steps.push(`Failed to remove object ${data.id}. Status: ${data.status}`);
    })
    .catch(error => {
   ...