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

Comments are closed