1
- import { screen } from "@testing-library/react"
1
+ import { fireEvent , screen } from "@testing-library/react"
2
+ import { rest } from "msw"
3
+ import { server } from "testHelpers/server"
2
4
import * as CreateDayString from "util/createDayString"
3
5
import {
6
+ MockMemberPermissions ,
4
7
MockTemplate ,
5
8
MockTemplateVersion ,
9
+ MockUser ,
6
10
MockWorkspaceResource ,
7
11
renderWithAuth ,
8
12
} from "../../testHelpers/renderHelpers"
@@ -23,4 +27,28 @@ describe("TemplatePage", () => {
23
27
screen . getByText ( MockWorkspaceResource . name )
24
28
screen . queryAllByText ( `${ MockTemplateVersion . name } ` ) . length
25
29
} )
30
+ it ( "allows an admin to delete a template" , async ( ) => {
31
+ renderWithAuth ( < TemplatePage /> , {
32
+ route : `/templates/${ MockTemplate . id } ` ,
33
+ path : "/templates/:template" ,
34
+ } )
35
+ const dropdownButton = await screen . findByLabelText ( "open-dropdown" )
36
+ fireEvent . click ( dropdownButton )
37
+ const deleteButton = await screen . findByText ( "Delete" )
38
+ expect ( deleteButton ) . toBeDefined ( )
39
+ } )
40
+ it ( "does not allow a member to delete a template" , ( ) => {
41
+ // get member-level permissions
42
+ server . use (
43
+ rest . post ( `/api/v2/users/${ MockUser . id } /authorization` , async ( req , res , ctx ) => {
44
+ return res ( ctx . status ( 200 ) , ctx . json ( MockMemberPermissions ) )
45
+ } )
46
+ )
47
+ renderWithAuth ( < TemplatePage /> , {
48
+ route : `/templates/${ MockTemplate . id } ` ,
49
+ path : "/templates/:template" ,
50
+ } )
51
+ const dropdownButton = screen . queryByLabelText ( "open-dropdown" )
52
+ expect ( dropdownButton ) . toBe ( null )
53
+ } )
26
54
} )
0 commit comments