@@ -45,39 +45,33 @@ const mockBlocks = [
4545 } ,
4646] ;
4747
48- describe ( "Slack functions" , ( ) => {
49- it ( "should create expected payload" , async ( ) => {
50- const payload = createPayload ( mockData . name , mockData . email , mockData . url ) ;
48+ describe ( "Slack helpers" , ( ) => {
49+ describe ( "createPayload" , ( ) => {
50+ it ( "should create expected payload" , async ( ) => {
51+ const payload = createPayload (
52+ mockData . name ,
53+ mockData . email ,
54+ mockData . url ,
55+ ) ;
5156
52- expect ( payload . blocks ) . toEqual ( mockBlocks ) ;
53- } ) ;
54-
55- it ( "should call notifyContactCreated once if conditions are met" , async ( ) => {
56- global . fetch = jest . fn ( ) . mockResolvedValue ( {
57- status : 200 ,
57+ expect ( payload . blocks ) . toEqual ( mockBlocks ) ;
5858 } ) ;
59-
60- await notifyContactCreated ( mockData . name , mockData . email , mockData . url ) ;
61- const [ [ url , options ] ] = ( global . fetch as jest . Mock ) . mock . calls ;
62- const data = JSON . parse ( options . body ) ;
63- const blocks = JSON . stringify ( data . blocks ) ;
64-
65- expect ( url ) . toBe ( "https://slack.com/api/chat.postMessage" ) ;
66- expect ( blocks ) . toMatch ( JSON . stringify ( mockBlocks ) ) ;
67- expect ( fetch ) . toHaveBeenCalledTimes ( 1 ) ;
6859 } ) ;
6960
70- it ( "should throw error if fetch fails" , async ( ) => {
71- global . fetch = jest . fn ( ) . mockResolvedValue ( {
72- status : 401 ,
73- } ) ;
61+ describe ( "notifyContactCreated" , ( ) => {
62+ it ( "should send message on slack with correct payload" , async ( ) => {
63+ global . fetch = jest . fn ( ) . mockResolvedValue ( {
64+ status : 200 ,
65+ } ) ;
66+
67+ await notifyContactCreated ( mockData . name , mockData . email , mockData . url ) ;
68+ const [ [ url , options ] ] = ( global . fetch as jest . Mock ) . mock . calls ;
69+ const body = JSON . parse ( options . body ) ;
70+ const blocks = JSON . stringify ( body . blocks ) ;
7471
75- await expect (
76- notifyContactCreated ( mockData . name , mockData . email , mockData . url ) ,
77- ) . rejects . toEqual ( {
78- body : "Could not send notification message to Slack" ,
79- statusCode : 401 ,
72+ expect ( url ) . toBe ( "https://slack.com/api/chat.postMessage" ) ;
73+ expect ( blocks ) . toMatch ( JSON . stringify ( mockBlocks ) ) ;
74+ expect ( fetch ) . toHaveBeenCalledTimes ( 1 ) ;
8075 } ) ;
81- expect ( fetch ) . toHaveBeenCalledTimes ( 1 ) ;
8276 } ) ;
8377} ) ;
0 commit comments