@@ -12,19 +12,36 @@ import type {
12
12
SetMainEmailRequest ,
13
13
VerifyEmailRequest
14
14
} from '../generated' ;
15
+ import FakeTokensEndpointApi from './tokens-endpoint' ;
16
+ import FakeUsersEndpointApi from './users-endpoint' ;
17
+ import { fail } from './utils' ;
15
18
16
19
export default class FakeEmailsEndpointApi implements EmailsEndpointApiInterface {
17
20
async countEmails ( initOverrides ?: RequestInit | InitOverrideFunction ) : Promise < number > {
18
21
const emails = await this . listEmails ( ) ;
19
22
return emails . length ;
20
23
}
21
24
22
- createEmail (
25
+ async createEmail (
23
26
emailCreation : EmailCreation ,
24
27
customDeepLinks ?: boolean ,
25
28
initOverrides ?: RequestInit | InitOverrideFunction
26
29
) : 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
+ }
28
45
}
29
46
30
47
deleteEmail ( id : string , initOverrides ?: RequestInit | InitOverrideFunction ) : Promise < void > {
@@ -38,7 +55,11 @@ export default class FakeEmailsEndpointApi implements EmailsEndpointApiInterface
38
55
switch ( page ) {
39
56
case undefined :
40
57
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
+ ] ;
42
63
43
64
default :
44
65
return [ ] ;
@@ -49,14 +70,20 @@ export default class FakeEmailsEndpointApi implements EmailsEndpointApiInterface
49
70
throw new Error ( 'Method not implemented.' ) ;
50
71
}
51
72
52
- verifyEmail (
73
+ async verifyEmail (
53
74
emailVerification : EmailVerification ,
54
75
initOverrides ?: RequestInit | InitOverrideFunction
55
76
) : 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
+ }
57
84
}
58
85
59
- private makeEmail ( main = false , verified = true ) : Email {
86
+ private makeEmail ( main : boolean , verified : boolean ) : Email {
60
87
const id = makeId ( ) ;
61
88
return {
62
89
id,
0 commit comments