From 63007abda3970b49569589f3c87d283705c484db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jer=C3=B3nimo=20Albi?= Date: Thu, 30 Jan 2025 09:38:45 +0100 Subject: [PATCH] test(boards2): add missing filetests for member role change (#3636) Add missing filetests for `ChangeMemberRole()` function. Related to #3623 This covers all tests for the function: - Successful role change for realm member - Successful role change for board member - Fail for an admin removing an owner role - Fail for an admin changing a role to owner - Success changing a role to owner by another owner - Fail when role doesn't exist - Fail when user is not found - Fail for non member (unauthorized) --- .../gno.land/r/nt/boards2/z_4_a_filetest.gno | 21 ++++++----------- .../gno.land/r/nt/boards2/z_4_b_filetest.gno | 23 +++++++------------ .../gno.land/r/nt/boards2/z_4_c_filetest.gno | 2 +- .../gno.land/r/nt/boards2/z_4_d_filetest.gno | 2 +- .../gno.land/r/nt/boards2/z_4_e_filetest.gno | 17 ++++++++------ .../gno.land/r/nt/boards2/z_4_h_filetest.gno | 20 ++++++++++++++++ 6 files changed, 47 insertions(+), 38 deletions(-) create mode 100644 examples/gno.land/r/nt/boards2/z_4_h_filetest.gno diff --git a/examples/gno.land/r/nt/boards2/z_4_a_filetest.gno b/examples/gno.land/r/nt/boards2/z_4_a_filetest.gno index 4eba0caa6e9..5cc97b5da0b 100644 --- a/examples/gno.land/r/nt/boards2/z_4_a_filetest.gno +++ b/examples/gno.land/r/nt/boards2/z_4_a_filetest.gno @@ -7,11 +7,10 @@ import ( ) const ( - owner = std.Address("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // @test1 - member = std.Address("g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj") // @test2 - initialRole = boards2.RoleGuest - newRole = boards2.RoleAdmin - bid = boards2.BoardID(0) // Operate on realm DAO members instead of individual boards + owner = std.Address("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // @test1 + member = std.Address("g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj") // @test2 + newRole = boards2.RoleAdmin + bid = boards2.BoardID(0) // Operate on realm DAO instead of individual boards ) func init() { @@ -20,17 +19,11 @@ func init() { } func main() { - if boards2.HasMemberRole(bid, member, initialRole) { - println("ok") - } - boards2.ChangeMemberRole(bid, member, newRole) - if boards2.HasMemberRole(bid, member, newRole) { - println("ok") - } + // Ensure that new role has been changed + println(boards2.HasMemberRole(bid, member, newRole)) } // Output: -// ok -// ok +// true diff --git a/examples/gno.land/r/nt/boards2/z_4_b_filetest.gno b/examples/gno.land/r/nt/boards2/z_4_b_filetest.gno index 70760b217f3..9114392a137 100644 --- a/examples/gno.land/r/nt/boards2/z_4_b_filetest.gno +++ b/examples/gno.land/r/nt/boards2/z_4_b_filetest.gno @@ -7,32 +7,25 @@ import ( ) const ( - owner = std.Address("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // @test1 - member = std.Address("g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj") // @test2 - initialRole = boards2.RoleGuest - newRole = boards2.RoleAdmin + owner = std.Address("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // @test1 + member = std.Address("g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj") // @test2 + newRole = boards2.RoleAdmin ) -var bid boards2.BoardID +var bid boards2.BoardID // Operate on board DAO func init() { std.TestSetOrigCaller(owner) - bid = boards2.CreateBoard("foo123") // Operate on board DAO members + bid = boards2.CreateBoard("foo123") boards2.InviteMember(bid, member, boards2.RoleGuest) } func main() { - if boards2.HasMemberRole(bid, member, initialRole) { - println("ok") - } - boards2.ChangeMemberRole(bid, member, newRole) - if boards2.HasMemberRole(bid, member, newRole) { - println("ok") - } + // Ensure that new role has been changed + println(boards2.HasMemberRole(bid, member, newRole)) } // Output: -// ok -// ok +// true diff --git a/examples/gno.land/r/nt/boards2/z_4_c_filetest.gno b/examples/gno.land/r/nt/boards2/z_4_c_filetest.gno index 6c8573a494b..a71ce1a21b8 100644 --- a/examples/gno.land/r/nt/boards2/z_4_c_filetest.gno +++ b/examples/gno.land/r/nt/boards2/z_4_c_filetest.gno @@ -10,7 +10,7 @@ const ( owner = std.Address("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // @test1 owner2 = std.Address("g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj") // @test2 admin = std.Address("g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5") - bid = boards2.BoardID(0) // Operate on realm DAO members instead of individual boards + bid = boards2.BoardID(0) // Operate on realm DAO instead of individual boards ) func init() { diff --git a/examples/gno.land/r/nt/boards2/z_4_d_filetest.gno b/examples/gno.land/r/nt/boards2/z_4_d_filetest.gno index 713e14cee1e..6c2678873b6 100644 --- a/examples/gno.land/r/nt/boards2/z_4_d_filetest.gno +++ b/examples/gno.land/r/nt/boards2/z_4_d_filetest.gno @@ -10,7 +10,7 @@ const ( owner = std.Address("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // @test1 admin = std.Address("g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj") // @test2 admin2 = std.Address("g1vh7krmmzfua5xjmkatvmx09z37w34lsvd2mxa5") - bid = boards2.BoardID(0) // Operate on realm DAO members instead of individual boards + bid = boards2.BoardID(0) // Operate on realm DAO instead of individual boards ) func init() { diff --git a/examples/gno.land/r/nt/boards2/z_4_e_filetest.gno b/examples/gno.land/r/nt/boards2/z_4_e_filetest.gno index dcce443582a..80d33faaafa 100644 --- a/examples/gno.land/r/nt/boards2/z_4_e_filetest.gno +++ b/examples/gno.land/r/nt/boards2/z_4_e_filetest.gno @@ -7,20 +7,23 @@ import ( ) const ( - owner = std.Address("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // @test1 - admin = std.Address("g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj") // @test2 - bid = boards2.BoardID(0) // Operate on realm DAO members instead of individual boards + owner = std.Address("g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5") // @test1 + member = std.Address("g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj") // @test2 + bid = boards2.BoardID(0) // Operate on realm DAO members instead of individual boards + newRole = boards2.RoleOwner ) func init() { std.TestSetOrigCaller(owner) - boards2.InviteMember(bid, admin, boards2.RoleAdmin) + boards2.InviteMember(bid, member, boards2.RoleAdmin) } func main() { - boards2.ChangeMemberRole(bid, admin, boards2.RoleOwner) // Owner can promote other members to Owner - println("ok") + boards2.ChangeMemberRole(bid, member, newRole) // Owner can promote other members to Owner + + // Ensure that new role has been changed to owner + println(boards2.HasMemberRole(bid, member, newRole)) } // Output: -// ok +// true diff --git a/examples/gno.land/r/nt/boards2/z_4_h_filetest.gno b/examples/gno.land/r/nt/boards2/z_4_h_filetest.gno new file mode 100644 index 00000000000..0d9bc8e5303 --- /dev/null +++ b/examples/gno.land/r/nt/boards2/z_4_h_filetest.gno @@ -0,0 +1,20 @@ +package main + +import ( + "std" + + "gno.land/r/nt/boards2" +) + +const owner = std.Address("g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj") // @test2 + +func init() { + std.TestSetOrigCaller(owner) +} + +func main() { + boards2.ChangeMemberRole(0, "g1us8428u2a5satrlxzagqqa5m6vmuze025anjlj", boards2.RoleGuest) +} + +// Error: +// unauthorized