Тип '{}' не содержит следующие свойства из типа 'Запрос': получить, заголовок, принимает, принимаетCharsets и еще 67 - PullRequest
0 голосов
/ 26 марта 2020

Я тестирую свои конечные точки в автономном режиме, имитируя / подделывая все данные. Основываясь на тестировании Firebase Unit облачных функций docs , они используют его следующим образом:

const req = { query: {text: 'input'} };
const res = {
  redirect: (code, url) => {
    assert.equal(code, 303);
    assert.equal(url, 'new_ref');
    done();
  }
};

// Invoke addMessage with our fake request and response objects
myFunctions.addMessage(req, res);

Мой код похож:

const req = {

}

const res = {

}

updateUser(req, res)

// and this is 'updateUser()' function in another file
export default functions.https.onRequest(async (req, res) => { ... }

Так что я получая следующую ошибку:

Аргумент типа '{}' не может быть назначен параметру типа 'Request'. Типу «{}» не хватает следующих свойств из типа «Запрос»: get, header, accept, acceptptsCharsets и еще 67.

Как можно избежать установки всех 67 свойств? Я просто хочу предоставить свойства 'method', 'query' или 'body'.

Ответы [ 2 ]

0 голосов
/ 26 марта 2020

Спасибо @mamichels, с их помощью мне удалось решить это. Так что я выкладываю решение на всякий случай, оно может кому-то помочь. Я использую Firebase CF с Express.

import * as express from "express"

...

it("should do something", async () => {
    const req = {
      method: "POST"
    }

    const res = {

    }

    updateUser(req as express.Request, res as express.Response)
})

И мой updateUser выглядит так:

export default functions.https.onRequest(async (req, res) => {
  ...
})
0 голосов
/ 26 марта 2020

Просто введите его как: (req as Request), res => ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...