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.

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
Deixe um comentário