Skip to content

Commit 09c1e3f

Browse files
luizhf42gustavosbarreto
authored andcommitted
refactor(ui): adapt MemberEdit to use RoleSelect
1 parent 97745e0 commit 09c1e3f

File tree

2 files changed

+15
-27
lines changed

2 files changed

+15
-27
lines changed

ui/src/components/Team/Member/MemberEdit.vue

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,10 @@
2424
<v-divider />
2525

2626
<v-card-text class="mt-4 mb-0 pb-1">
27-
<v-row align="center">
28-
<v-col cols="12">
29-
<v-select
30-
v-model="newRole"
31-
:items="items"
32-
label="Role"
33-
:error-messages="errorMessage"
34-
require
35-
data-test="role-select"
36-
/>
37-
</v-col>
38-
</v-row>
27+
<RoleSelect
28+
v-model="newRole"
29+
data-test="role-select"
30+
/>
3931
</v-card-text>
4032

4133
<v-card-actions>
@@ -61,11 +53,12 @@
6153
<script setup lang="ts">
6254
import { ref } from "vue";
6355
import axios from "axios";
64-
import { INamespaceMember } from "@/interfaces/INamespace";
56+
import { BasicRole, INamespaceMember } from "@/interfaces/INamespace";
6557
import { useStore } from "@/store";
6658
import handleError from "@/utils/handleError";
6759
import useSnackbar from "@/helpers/snackbar";
6860
import BaseDialog from "@/components/BaseDialog.vue";
61+
import RoleSelect from "@/components/Team/RoleSelect.vue";
6962
7063
const { member, hasAuthorization } = defineProps<{
7164
member: INamespaceMember;
@@ -76,9 +69,7 @@ const emit = defineEmits(["update"]);
7669
const store = useStore();
7770
const snackbar = useSnackbar();
7871
const showDialog = ref(false);
79-
const newRole = ref(member.role);
80-
const errorMessage = ref("");
81-
const items = ["administrator", "operator", "observer"];
72+
const newRole = ref(member.role as BasicRole);
8273
8374
const close = () => {
8475
showDialog.value = false;
@@ -94,23 +85,20 @@ const handleEditMemberError = (error: unknown) => {
9485
const status = error.response?.status;
9586
switch (status) {
9687
case 400:
97-
errorMessage.value = "The user isn't linked to the namespace.";
88+
snackbar.showError("The user isn't linked to the namespace.");
9889
break;
9990
case 403:
100-
errorMessage.value = "You don't have permission to assign a role to the user.";
91+
snackbar.showError("You don't have permission to assign a role to the user.");
10192
break;
10293
case 404:
103-
errorMessage.value = "The username doesn't exist.";
94+
snackbar.showError("The username doesn't exist.");
10495
break;
10596
default:
106-
handleError(error);
97+
snackbar.showError("Failed to update user role.");
10798
}
99+
} else snackbar.showError("Failed to update user role.");
108100
109-
snackbar.showError("Failed to update user role.");
110-
} else {
111-
snackbar.showError("Failed to update user role.");
112-
handleError(error);
113-
}
101+
handleError(error);
114102
};
115103
116104
const editMember = async () => {

ui/tests/components/Team/Member/MemberEdit.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ describe("Member Edit", () => {
110110
});
111111

112112
it("Edit Member Error Validation", async () => {
113-
mockNamespace.onPatch("http://localhost:3000/api/namespaces/fake-tenant-data/members").reply(409);
113+
mockNamespace.onPatch("http://localhost:3000/api/namespaces/fake-tenant-data/members/xxxxxxxx").reply(409);
114114

115115
const storeSpy = vi.spyOn(store, "dispatch");
116116

@@ -132,7 +132,7 @@ describe("Member Edit", () => {
132132
});
133133

134134
it("Edit Member Success Validation", async () => {
135-
mockNamespace.onPatch("http://localhost:3000/api/namespaces/fake-tenant-data/members").reply(200);
135+
mockNamespace.onPatch("http://localhost:3000/api/namespaces/fake-tenant-data/members/xxxxxxxx").reply(200);
136136

137137
const storeSpy = vi.spyOn(store, "dispatch");
138138

0 commit comments

Comments
 (0)