useShopSearchAPI
概要
Prisma
schemaを定義
MySQLデータベースに対する操作メソッドを定義する
店舗情報の取得
shops
店舗情報の更新
updateShops
..
Prismaでモックを利用できる
これで定義する単体テストは、Prismaの責務
すなわち、各操作メソッドのテストである。
TypeScriptの型定義
操作メソッドのインターフェースに用いられる型定義は、PrismaのCLIから自動的に生成される
Apollo Server
PrismaとGraphQLの接続を行う
Apollo Serverである必要はないのかもしれない
テスト
GraphQLリクエストに対するレスポンスをテストできる。
基本的に、Resolverに対するテストである。
モックしたPrismaと、それに対するResolverのレスポンスを比較するテスト。
これによれば、操作メソッドをApollo Serverのレイヤーで定義
定義する場所は、Prisma上でも、Apollo Server上でもどっちでも良い気がする
Apollo Serverへの依存性を下げるには、別の場所で定義するのが良いが、どこに置くかは自由
Prismaに直接依存するので、凝集度を高めるためにPrismaのディレクトリで定義する
useShopSearchAPI
Apollo Serverで立てたGraphQLサーバーにGraphQLリクエストを行う。
レスポンスはGraphQLサーバーのレスポンスであり、このhooksの責務は薄い。
テスト
テストは不要だろうか?