たかぎとねこの忘備録

プログラミングに関する忘備録を自分用に残しときます。マサカリ怖い。

Oakでルート用のミドルウェアをテストしたい話

oakでルート用のミドルウェアに対するテストを行おうとした時に躓いたので、そのための忘備録。 標準のモッキングライブラリ Oakではモック用のユーティリティ関数が用意されている。 https://deno.land/x/oak@v7.7.0/docs/testing.md 通常のミドルウェアに…

Google OAuth2.0認証時に取得したアクセストークンの有効期限が切れてしまい、Google APIにアクセスできなくなったときの対処法

remix-authとremix-auth-googleを使ってRemixアプリケーションでGoogleアカウントでのログインを実装するとaccessTokenとrefreshTokenを取得することができる。 今まではaccessTokenのみにしか注目しておらず、refreshTokenについては全く触らずに開発を行な…

@remix-run/reactからエクスポートされているコンポーネントを含んだコンポーネントをテストする場合のTips

@testing-library/reactのrenderメソッドを使用してコンポーネントをテストするときに、その対象のコンポーネントが内部で@remix-run/reactパッケージから<Link />コンポーネントや<Form />コンポーネントをインポートしている場合に、次のようなエラーが発生した。 ... Cons</form></link>…

PlanetScaleにPrismaを接続する際のschema.prismaの書き方

PlanetScaleでは外部キー制約をサポートしていない。 PlanetScale doesn't support FOREIGN KEY constraints. docs.planetscale.com そしてPrismaのドキュメントの外部キーに対するインデックスの作成に関する部分を見ていたら次の文章を見つけた。 One issu…

GitHub Actionsでテスト用のジョブを動かした時に`Process completed with exit code 139.`エラーが発生した場合の対処法

GitHub Actionsでテスト用のジョブを動かしていた時に、全てのテストが成功しているにもかかわらず、次のようなエラーが発生してジョブが失敗したことになってしまった Segmentation fault (core dumped) 97 Error: Process completed with exit code 139. T…

Remixでfetcher.submitの完了と同時に画面が再読み込みされてしまう問題を解決する

今回、Remix Stacksが登場する以前にnpx create-remixで作成したプロジェクトをRemix Blues Stackに移行させる過程で発生した問題についての対処法をまとめておく。 TL;DR github.com 問題が発覚するまでの時系列 現在開発中のプロジェクトを立ち上げたとき…

Remix AuthにおけるStrategyのsuccessメソッドを呼び出してもセッションデータが保存されない問題を解決する

Remix Authとは Remixにサーバーサイドでの認証を組み込みたいときに便利なのがremix-authというパッケージです。 このパッケージはPassport.jsからとても強い影響を受けていて、ストラテジーベースの認証を提供しています。 github.com カスタムストラテジ…

Lernaを使ってバラバラのExpoのプロジェクトとFirebaseのプロジェクトをmonorepoにしてみる

僕の場合、Expoでアプリを開発する時は、Firebaseを使うことがほとんどである。認証周りとかFirestoreとか便利だし。 ただ、それぞれ別々のリポジトリとして管理していると、いちいちフォルダ間の移動が大変だったりどこにどのファイルを作ったかを忘れたり…