
非同期処理のテスト成否の返し方
GitHub Actionsでstepで何か処理を実行した時、失敗したらエラーが表示され、全てのstepが成功したら処理終了が表示されます。この場合、stepで定義した処理の実行結果によって成否が判断されるため、非同期の処理をテストしたい場合はエラーを投げてあげる必要があります。
GitHub Actionsでstepで何か処理を実行した時、失敗したらエラーが表示され、全てのstepが成功したら処理終了が表示されます。この場合、stepで定義した処理の実行結果によって成否が判断されるため、非同期の処理をテストしたい場合はエラーを投げてあげる必要があります。
最近Firebaseを利用して開発する機会が多いため、今回もFirebaseネタです。Firebase Functionsで自動テストする方法を紹介しようと思います。
通常Firebase Functionsでテストを行う場合は、ざっくりとした手順で
firebase emulators:start --inspect-functions
というコマンドを実行npm test
を実行
という感じだと思います。ローカルで行うのはそこまで大変ではないのですが、CI上で行う場合はEmulatorを設定したり、npm installでmoduleをインストールしたりなど割と大変な環境設定が必要と思われてきました。 先日Firebase summitで割と楽に設定する方法が紹介されていたので、改めて紹介しておきます。
先日初めてnpmでライブラリを公開してみました。感想としては「意外とそんなに難しくなかった」というところです。単純にGitHubでソースコードを公開するだけより、多くの人に使ってもらえそうなのはもちろんのこと、アプリのようにダウンロード数を確認できるので何より励みになります。
私はAndroidやiPhoneのアプリを個人開発して公開したことがありますが、簡単なアプリでもデザインを行ったりしているとそこそこ時間がかかります。アプリのLPサイトの用意やストアに公開するための文言もそこそこ大変です。
最近、firebase-idtoken-getterというライブラリを公開したのですが、Firebase SDKおよびFirebase Admin SDKの関数を利用する必要がありました。
Firebase SDK、Firebase Admin SDKから提供されるインターフェースは非同期の関数ですが、コールバック地獄を避けるためSDKから提供される関数を同期的に扱いたいというシーンです。
Javascriptを使う上で(個人的には)非常に分かりにくいと感じる同期処理について、自分の書き方を紹介します。