typescript - Testare unitară a handler-ului aws lambda care interoghează date dintr-un index Elasticsearch mock


Încerc să testez o funcție AWS Lambda care interoghează și returnează date din elasticsearch.

Am reușit să găsesc câteva documentații despre cum să creez un elasticsearch fals și să adaug date în indexul fals prin codul de mai jos.

const { Client } = require('@elastic/elasticsearch')
const Mock = require('@elastic/elasticsearch-mock')

const mock = new Mock()
const client = new Client({
  node: 'http://localhost:9200',
  Connection: mock.getConnection()
})

mock.add({
  method: 'POST',
  path: '/indexName/_search',
  body: { query: { match: { foo: 'bar' } } }
}, () => {
  return {
    hits: {
      total: { value: 0, relation: 'eq' },
      hits: []
    }
  }
})

Întrebarea mea este cum aș putea să fac un test unitar pentru un endpoint care interoghează datele mock? Nu am reușit să găsesc multe documentații despre cum să fac acest lucru.

adică Cum modific testul unitar de mai jos pentru a folosi indexul elastic mock creat mai sus în loc să fie nevoie să interoghez efectiv un index elasticsearch real folosind docker sau ceva echivalent, ceea ce fac în prezent?

const mock = (
  partial: Partial<APIGatewayProxyEvent>
): APIGatewayProxyEvent => partial as APIGatewayProxyEvent;
const mockContext = {} as Context;
const mockCallback: Callback<APIGatewayProxyResult> = () => {
  return;

describe('lambda handler', () => {



  it('returns response', async () => {
    const result = await handler(
      mockEvent({ queryStringParameters: { name: 'dave' } }),
      mockContext,
      mockCallback
    );
    if (!result) {
      fail('no result');
    } else {
      expect(result.statusCode).toEqual(200);
      expect(JSON.parse(result.body)).toEqual(mockResponse);
    }
  });
});
};