Skip to content
This repository has been archived by the owner on Sep 12, 2023. It is now read-only.

Commit

Permalink
fix(consultation): find activities of consultation
Browse files Browse the repository at this point in the history
fix #1072
  • Loading branch information
lemredd committed Dec 6, 2022
1 parent 8473c59 commit 4fd16bc
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 74 deletions.
26 changes: 20 additions & 6 deletions components/consultation/list.vue
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
v-for="consultation in consultations.data"
:key="consultation.id"
:consultation="consultation"
:chat-message-activities="chatMessageActivities"
:chat-message-activities="determineActivities(consultation)"
:preview-messages="previewMessages"/>
</div>
</template>
Expand Down Expand Up @@ -95,6 +95,7 @@ import type {
} from "$/types/documents/chat_message_activity"
import type {
ConsultationRelationshipNames,
DeserializedConsultationResource,
DeserializedConsultationListDocument
} from "$/types/documents/consultation"
Expand All @@ -114,6 +115,12 @@ import MinorDropdown from "@/helpers/minor_dropdown.vue"
const pageContext = inject("pageContext") as PageContext<"deserialized">
const props = defineProps<{
chatMessageActivities: DeserializedChatMessageActivityListDocument<"user"|"consultation">,
consultations: DeserializedConsultationListDocument<ConsultationRelationshipNames>,
previewMessages: DeserializedChatMessageListDocument<"user"|"consultation">
}>()
const {
"state": isDropdownShown
} = makeSwitch(false)
Expand All @@ -132,9 +139,16 @@ const { "pageProps": { userProfile } } = pageContext
const isUserAStudent = computed(() => userProfile.data.kind === "student")
const isUserAReachableEmployee = computed(() => userProfile.data.kind === "reachable_employee")
defineProps<{
chatMessageActivities: DeserializedChatMessageActivityListDocument<"user"|"consultation">,
consultations: DeserializedConsultationListDocument<ConsultationRelationshipNames>,
previewMessages: DeserializedChatMessageListDocument<"user"|"consultation">
}>()
function determineActivities(consultation: DeserializedConsultationResource) {
const activities = props.chatMessageActivities.data.filter(
activity => activity.consultation.data.id === consultation.id
)
return {
"data": activities,
"meta": {
"count": activities.length
}
}
}
</script>
68 changes: 0 additions & 68 deletions components/consultation/list/item.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,72 +122,4 @@ describe("Component: consultation/list/item", () => {
const lengthOfUniqueUsers = wrapper.props("chatMessageActivities").data.length - 1
expect(profilePictures).toHaveLength(lengthOfUniqueUsers)
})

it("should display profile pictures even if inactive", () => {
const wrapper = shallowMount<any>(Component, {
"global": {
"provide": {
[BODY_CLASSES]: [],
"pageContext": {
"pageProps": {
"userProfile": {
"data": {
"kind": "student"
}
}
},
"urlPathname": "/consultation/read/2"
}
}
},
"props": {
"chatMessageActivities": {
"data": [
{
"consultation": { "data": { "id": "1" } },
"id": "1",
"user": {
"data": {
"id": "1",
"name": "participant A"
}
}
},
{
"consultation": { "data": { "id": "1" } },
"id": "2",
"user": {
"data": {
"id": "2",
"name": "participant B"
}
}
},
{
"consultation": { "data": { "id": "1" } },
"id": "3",
"user": {
"data": {
"id": "2",
"name": "participant"
}
}
}
]
},
"consultation": {
"id": "1",
"reason": "Reason A"
},
"previewMessages": {
"data": []
}
}
})

const profilePictures = wrapper.findAllComponents(".profile-picture-item")
const lengthOfUniqueUsers = wrapper.props("chatMessageActivities").data.length - 1
expect(profilePictures).toHaveLength(lengthOfUniqueUsers)
profilePictures.forEach(p => console.log(p.html(), "\n\n\n"))
})
})

0 comments on commit 4fd16bc

Please sign in to comment.