@@ -12,19 +12,36 @@ import type {
1212 SetMainEmailRequest ,
1313 VerifyEmailRequest
1414} from '../generated' ;
15+ import FakeTokensEndpointApi from './tokens-endpoint' ;
16+ import FakeUsersEndpointApi from './users-endpoint' ;
17+ import { fail } from './utils' ;
1518
1619export default class FakeEmailsEndpointApi implements EmailsEndpointApiInterface {
1720 async countEmails ( initOverrides ?: RequestInit | InitOverrideFunction ) : Promise < number > {
1821 const emails = await this . listEmails ( ) ;
1922 return emails . length ;
2023 }
2124
22- createEmail (
25+ async createEmail (
2326 emailCreation : EmailCreation ,
2427 customDeepLinks ?: boolean ,
2528 initOverrides ?: RequestInit | InitOverrideFunction
2629 ) : Promise < Email > {
27- throw new Error ( 'Method not implemented.' ) ;
30+ switch ( emailCreation . email ) {
31+ case FakeUsersEndpointApi . badEmail :
32+ return fail ( 400 ) ;
33+
34+ case FakeUsersEndpointApi . usedEmail :
35+ return fail ( 409 ) ;
36+
37+ default :
38+ return {
39+ id : makeId ( ) ,
40+ email : emailCreation . email ,
41+ main : false ,
42+ verified : false
43+ } ;
44+ }
2845 }
2946
3047 deleteEmail ( id : string , initOverrides ?: RequestInit | InitOverrideFunction ) : Promise < void > {
@@ -38,7 +55,11 @@ export default class FakeEmailsEndpointApi implements EmailsEndpointApiInterface
3855 switch ( page ) {
3956 case undefined :
4057 case 0 :
41- return [ this . makeEmail ( true ) , this . makeEmail ( ) , this . makeEmail ( ) ] ;
58+ return [
59+ this . makeEmail ( true , true ) ,
60+ this . makeEmail ( false , true ) ,
61+ this . makeEmail ( false , false )
62+ ] ;
4263
4364 default :
4465 return [ ] ;
@@ -49,14 +70,20 @@ export default class FakeEmailsEndpointApi implements EmailsEndpointApiInterface
4970 throw new Error ( 'Method not implemented.' ) ;
5071 }
5172
52- verifyEmail (
73+ async verifyEmail (
5374 emailVerification : EmailVerification ,
5475 initOverrides ?: RequestInit | InitOverrideFunction
5576 ) : Promise < void > {
56- throw new Error ( 'Method not implemented.' ) ;
77+ switch ( emailVerification . code ) {
78+ case FakeTokensEndpointApi . goodSecret :
79+ return ;
80+
81+ default :
82+ return fail ( 404 ) ;
83+ }
5784 }
5885
59- private makeEmail ( main = false , verified = true ) : Email {
86+ private makeEmail ( main : boolean , verified : boolean ) : Email {
6087 const id = makeId ( ) ;
6188 return {
6289 id,
0 commit comments