Tengo una función almacenada en un archivo separado que tiene una llamada a un punto final de graphql.
Estoy tratando de llamar a esta función y devolver una identificación (que se devuelve); sin embargo, recibo una advertencia de que estoy usando .end y .done
La función:
module.exports = { addThing: async function (title, extRef, done) { const basicAddCreative = `mutation { ...}` let the_id = await request .post("/graphql") .send({ query: basicAddCreative }) .set("Accept", "application/json") .expect(200) .end((err, res) => { if (err) return done(err) return res.body.data.id }) return the_id } }Y esto se llama (en un archivo diferente)
let cId = helpers.addThing('fnTest', 'fnTest', done) cId.then(i => console.log(i))Y luego, cuando ejecuto esto, la prueba que tengo falla para: .end() se llamó dos veces. Esto no es compatible con superagent Y luego veo: Advertencia: la solicitud de superagent se envió dos veces, porque se llamaron tanto .end() como .then(). Nunca llames a .end() si usas promesas.
¿Alguien puede arrojar luz sobre cómo podría solucionar lo anterior? Específicamente, si estoy usando supertest con chai, necesito usar .end (o supertest marcará la consulta como fallida por tiempo de espera) y necesito usar .then para obtener el valor devuelto. ¿Como es esto posible?