Trabalhe com arquivo de environment no seu teste de API

Assim como no postman nós aqui também podemos ter um arquivo de environment para adicionarmos dados fixos no nosso testes como a nossa baseURL e irei ensinar para vocês a forma mais simples e prática para utilizar.

Vamos começar criando uma pasta chamada environment ela irá ficar na raiz do projeto.

├── __Test__
├── coverage
├── environment
├── graphql
    ├── query/
    ├── schema/
├── helpers
    ├── date/
    ├── utils/
├── README.md

Dentro desta pasta iremos criar um arquivo chamado index.js que como vocês sabem irá atualizar como a bibliotecaria da biblioteca environment e deixará assim todos os livros (arquivos) disponíveis para a leitura.

E também iremos criar o nosso “livro” que será o nosso environemt irei colocar o nome de stg.js porque ele irá conter todas as informações do nosso ambiente de teste, no nosso caso a baseURL.

export const baseURL = "https://api.geographql.rudio.dev/graphql";

E agora avisamos a nossa bibliotecária (index.js) que o nosso livro (stg.js) está disponível passando a localidade do arquivo.





export * from "./stg";

Agora lá no nosso arquivo de request iremos mudar um pouco o método que faz a requisição.

Hoje ele está assim, recebendo a url para fazer a request através do método.

const request = require("supertest");
var chai = require("chai"),
  expect = chai.expect;

export async function requestGraphqlTutorial(url,payload) {
  const response = await request(url)
    .post("/graphql")
    .send(payload)
    .expect("Content-Type", "application/json; charset=utf-8")
    .expect(200);
  return response;
}

Mas agora que temos ela dentro de um arquivo de environment precisamos apenas importar o arquivo e chamar o parâmetro que queremos usar, como na função requestGraphql.

const request = require("supertest");
import { baseURL } from "../../environment/stg";
var chai = require("chai"),
  expect = chai.expect;

export async function requestGraphqlTutorial(url,payload) {
  const response = await request(url)
    .post("/graphql")
    .send(payload)
    .expect("Content-Type", "application/json; charset=utf-8")
    .expect(200);
  return response;
}

export async function requestGraphql(payload) {
  const response = await request(baseURL)
    .post("/graphql")
    .send(payload)
    .expect("Content-Type", "application/json; charset=utf-8")
    .expect(200);
  return response;
}

E agora na nossa spec iremos apenas importar este novo método e alterar no teste.

import { requestGraphql } from "../../helpers/utils/request";
import { schemaValidator } from "../../helpers/utils/schemaValidator";
import { queryDataStates } from "../../graphql/query/states/states";
const schema = require("../../graphql/schema/states/states.schema.json")

describe('Criando a nova primeira spec', () => {
  var response = null

  test('Vamos criar a primeira request ', async () => {
    response = await requestGraphql(queryDataStates())
    schemaValidator(response.body, schema)
    console.log(JSON.stringify(response.body))
  });
});

E agora ao rodar os testes vemos que eles continuam funcionando bonitão.

Resultado da execução

Parabéns! Agora você já sabe trabalhando com arquivo de environment.

E se você quer ver como o repositório final se encontra só acessar o meu portfolio no Github https://github.com/pricaimiTech/geographqlJestAPI

E não esqueça de me seguir nas minhas redes sociais https://linktr.ee/priscilacaimi

Gostou do conteúdo? Não deixe de compartilhar!

Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *