3.0 릴리스, 작업은 아직 완료되지 않았습니다.

4467 단어 opensourcejavascript
이번 주에 이 문제#3464에 대해 독점적으로 작업했습니다.

Supabase를 사용하려면 파서에서 피드 업데이트:



나는 기본적으로 invalid 에서 모든 flaggedsrc/api/parser/utils/storage 피드를 제거하고 src/api/parser/utils/supabase.js 에서 Supabase를 사용하여 무효화/플래깅 피드를 처리하는 기능을 만듭니다. 돌이켜보면 그렇게 어렵지는 않았지만 꽤 길었습니다.

어려움은 this functionisFlagged 함수를 사용하여 플래그가 지정된 피드를 확인하고 이제 Redis 대신 Supabase와 통신하여 조롱하지 않고는 단위 테스트를 통과하지 못하게 한다는 것입니다.

  addFeed: async (feed) => {
    // Check if feed being added already exists in flagged feeds set
    // If it is, do nothing
    if (await isFlagged(feed.id)) return;

    const key = createFeedKey(feed.id);
    await redis
      .multi()
      .hset(
        key,
        'id',
    // ...
  },


그래서 Jest에게 모의 모듈을 사용하라고 지시하는 데 문제가 있었지만 문자 그대로 Supabase 데이터베이스에 대한 모의를 만들었습니다.

원래 이런 식으로 모의를 가져 왔습니다.

jest.mock('../src/utils/supabase');
const { __setMockFeeds, __resetMockFeeds } = require('../src/__mocks__/utils/supabase');


따라서 __setMockFeeds Jest가 사용하는 모의 공장이 아닌 실제 모듈 =>에 배열을 추가합니다. 이 2개는 서로 다른 자바스크립트 개체이며 Jerry가 이를 이해하는 데 도움을 주었습니다.

// Correct way to mock
jest.mock('../src/utils/supabase');
const { __setMockFeeds, __resetMockFeeds } = require('../src/utils/supabase');


또한 파서 e2e 테스트를 재작업해야 했습니다. 이제 훨씬 더 간단해 보입니다. 왠지 모르게 할 일을 자꾸 잊어버리고pnpm migrate 한동안 시험에 매달렸다. 3.0이 출시되기 몇 시간 전에 작동하게 만들었습니다 하하.


그러나 아직 작업이 완료되지 않았습니다. Supabase는 실제로 프로덕션 환경에서 작동하지 않습니다. parser 실제로 데이터베이스와 통신할 수 없습니다. 이 문제를 곧 해결하고 마음의 평화를 얻을 수 있기를 바랍니다.

좋은 웹페이지 즐겨찾기