Skip to content

Commit

Permalink
Fix from review
Browse files Browse the repository at this point in the history
RISDEV-5883
  • Loading branch information
anne-ds committed Jan 17, 2025
1 parent cde226a commit 5fe7659
Show file tree
Hide file tree
Showing 6 changed files with 85 additions and 33 deletions.
5 changes: 3 additions & 2 deletions frontend/src/components/HandoverDocumentationUnitView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -489,7 +489,7 @@ const isPublishable = computed<boolean>(
</div>
<div v-else class="flex flex-row gap-8">
<IconCheck class="text-green-700" />
<p>Alle Pflichtfelder sind korrekt ausgefüllt</p>
<p>Alle Pflichtfelder sind korrekt ausgefüllt.</p>
</div>
</div>
<div aria-label="Randnummernprüfung" class="flex flex-col">
Expand Down Expand Up @@ -578,7 +578,7 @@ const isPublishable = computed<boolean>(
class="flex flex-row gap-8"
>
<IconCheck class="text-green-700" />
<p>Die Reihenfolge der Randnummern ist korrekt</p>
<p>Die Reihenfolge der Randnummern ist korrekt.</p>
</div>
<div
v-if="showRecalculatingBorderNumbersFakeDelay"
Expand All @@ -590,6 +590,7 @@ const isPublishable = computed<boolean>(
</div>
<HandoverDuplicateCheckView
v-if="isDuplicateFeatureActive"
:document-number="store.documentUnit!.documentNumber"
:pending-duplicates="pendingDuplicates"
/>
<div class="border-b-1 border-b-gray-400"></div>
Expand Down
32 changes: 20 additions & 12 deletions frontend/src/components/HandoverDuplicateCheckView.vue
Original file line number Diff line number Diff line change
@@ -1,32 +1,40 @@
<script lang="ts" setup>
import dayjs from "dayjs"
import { computed } from "vue"
import DecisionSummary from "@/components/DecisionSummary.vue"
import TextButton from "@/components/input/TextButton.vue"
import { useInternalUser } from "@/composables/useInternalUser"
import { DuplicateRelation } from "@/domain/documentUnit"
import DateUtil from "@/utils/dateUtil"
import IconCheck from "~icons/ic/baseline-check"
import IconErrorOutline from "~icons/ic/baseline-error-outline"
const props = defineProps<{
documentNumber: string
pendingDuplicates: DuplicateRelation[]
}>()
const hasPendingDuplicateWarning = computed<boolean>(
() => props.pendingDuplicates.length > 0,
)
const isInternalUser = useInternalUser()
function renderSummary(duplicateRelation: DuplicateRelation) {
return [
...(duplicateRelation.courtLabel
? [`${duplicateRelation.courtLabel}`]
: []),
...(duplicateRelation.decisionDate
? [dayjs(duplicateRelation.decisionDate).format("DD.MM.YYYY")]
: []),
...(duplicateRelation.fileNumber ? [duplicateRelation.fileNumber] : []),
...(duplicateRelation.documentType ? [duplicateRelation.documentType] : []),
].join(", ")
duplicateRelation.courtLabel,
duplicateRelation.decisionDate &&
DateUtil.formatDate(duplicateRelation.decisionDate),
duplicateRelation.fileNumber,
duplicateRelation.documentType,
]
.filter(Boolean)
.join(", ")
}
const managementDataRoute = computed(() => ({
name: "caselaw-documentUnit-documentNumber-managementdata",
params: { documentNumber: props.documentNumber },
}))
</script>
<template>
<div aria-label="Dublettenprüfung" class="flex flex-col">
Expand Down Expand Up @@ -63,7 +71,7 @@ function renderSummary(duplicateRelation: DuplicateRelation) {
</div>
</div>
</div>
<RouterLink to="managementdata"
<RouterLink v-if="isInternalUser" :to="managementDataRoute">
><TextButton
aria-label="Dublettenwarnung prüfen"
button-type="tertiary"
Expand All @@ -74,7 +82,7 @@ function renderSummary(duplicateRelation: DuplicateRelation) {
</div>
<div v-else class="flex flex-row gap-8">
<IconCheck class="text-green-700" />
<p>Es besteht kein Dublettenverdacht</p>
<p>Es besteht kein Dublettenverdacht.</p>
</div>
</div>
</template>
14 changes: 7 additions & 7 deletions frontend/test/components/handoverDocument.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ describe("HandoverDocumentationUnitView:", () => {
})

expect(
screen.getByText("Alle Pflichtfelder sind korrekt ausgefüllt"),
screen.getByText("Alle Pflichtfelder sind korrekt ausgefüllt."),
).toBeInTheDocument()
expect(
screen.queryByText(
Expand Down Expand Up @@ -216,7 +216,7 @@ describe("HandoverDocumentationUnitView:", () => {
expect(screen.getByText("Rubriken bearbeiten")).toBeInTheDocument()

expect(
screen.queryByText("Alle Pflichtfelder sind korrekt ausgefüllt"),
screen.queryByText("Alle Pflichtfelder sind korrekt ausgefüllt."),
).not.toBeInTheDocument()
expect(screen.queryByText("XML Vorschau")).not.toBeInTheDocument()
expect(
Expand Down Expand Up @@ -256,7 +256,7 @@ describe("HandoverDocumentationUnitView:", () => {
expect(screen.queryByText("Rubriken bearbeiten")).not.toBeInTheDocument()

expect(
screen.getByText("Alle Pflichtfelder sind korrekt ausgefüllt"),
screen.getByText("Alle Pflichtfelder sind korrekt ausgefüllt."),
).toBeInTheDocument()
expect(await screen.findByText("XML Vorschau")).toBeInTheDocument()
expect(
Expand Down Expand Up @@ -296,7 +296,7 @@ describe("HandoverDocumentationUnitView:", () => {
expect(screen.getByText("Rubriken bearbeiten")).toBeInTheDocument()

expect(
screen.queryByText("Alle Pflichtfelder sind korrekt ausgefüllt"),
screen.queryByText("Alle Pflichtfelder sind korrekt ausgefüllt."),
).not.toBeInTheDocument()
expect(screen.queryByText("XML Vorschau")).not.toBeInTheDocument()
expect(
Expand Down Expand Up @@ -336,7 +336,7 @@ describe("HandoverDocumentationUnitView:", () => {
expect(screen.queryByText("Rubriken bearbeiten")).not.toBeInTheDocument()

expect(
screen.getByText("Alle Pflichtfelder sind korrekt ausgefüllt"),
screen.getByText("Alle Pflichtfelder sind korrekt ausgefüllt."),
).toBeInTheDocument()
expect(await screen.findByText("XML Vorschau")).toBeInTheDocument()
expect(
Expand Down Expand Up @@ -453,7 +453,7 @@ describe("HandoverDocumentationUnitView:", () => {

expect(await screen.findByText("XML Vorschau")).toBeInTheDocument()
expect(
screen.getByText("Es besteht kein Dublettenverdacht"),
screen.getByText("Es besteht kein Dublettenverdacht."),
).toBeInTheDocument()
expect(
screen.getByRole("button", {
Expand Down Expand Up @@ -721,7 +721,7 @@ describe("HandoverDocumentationUnitView:", () => {
await new Promise((resolve) => setTimeout(resolve, 0))

expect(container).toHaveTextContent(
`Übergabe an jDVPlausibilitätsprüfungAlle Pflichtfelder sind korrekt ausgefülltRandnummernprüfungDie Reihenfolge der Randnummern ist korrektDublettenprüfungEs besteht kein DublettenverdachtXML VorschauDokumentationseinheit an jDV übergebenOder für später terminieren:Datum * Uhrzeit * Termin setzenLetzte EreignisseXml Email Abgabe - 02.01.2000 um 00:00 UhrE-Mail an: receiver address Betreff: mail subject`,
`Übergabe an jDVPlausibilitätsprüfungAlle Pflichtfelder sind korrekt ausgefüllt.RandnummernprüfungDie Reihenfolge der Randnummern ist korrekt.DublettenprüfungEs besteht kein Dublettenverdacht.XML VorschauDokumentationseinheit an jDV übergebenOder für später terminieren:Datum * Uhrzeit * Termin setzenLetzte EreignisseXml Email Abgabe - 02.01.2000 um 00:00 UhrE-Mail an: receiver address Betreff: mail subject`,
)

const codeSnippet = screen.queryByTestId("code-snippet")
Expand Down
58 changes: 51 additions & 7 deletions frontend/test/components/handoverDocumentDuplicateCheck.spec.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { createTestingPinia } from "@pinia/testing"
import { render, screen } from "@testing-library/vue"
import { describe } from "vitest"
import { describe, vi } from "vitest"
import { ref } from "vue"
import { createRouter, createWebHistory } from "vue-router"
import HandoverDuplicateCheckView from "@/components/HandoverDuplicateCheckView.vue"
import {
Expand All @@ -15,18 +16,25 @@ const router = createRouter({
routes: routes,
})

const isInternalUser = ref(true)
vi.mock("@/composables/useInternalUser", () => {
return {
useInternalUser: () => isInternalUser,
}
})

describe("HandoverDocumentDuplicateCheckView:", () => {
test("without duplicates", async () => {
render(HandoverDuplicateCheckView, {
props: { pendingDuplicates: [] },
props: { documentNumber: "documentNumber", pendingDuplicates: [] },
global: {
plugins: [router],
},
})

expect(screen.getByText("Dublettenprüfung")).toBeInTheDocument()
expect(
screen.getByText("Es besteht kein Dublettenverdacht"),
screen.getByText("Es besteht kein Dublettenverdacht."),
).toBeInTheDocument()
expect(
screen.queryByText("Es besteht Dublettenverdacht."),
Expand All @@ -51,7 +59,7 @@ describe("HandoverDocumentDuplicateCheckView:", () => {
publicationStatus: PublicationState.UNPUBLISHED,
}
render(HandoverDuplicateCheckView, {
props: { pendingDuplicates: [duplicate] },
props: { documentNumber: "numberOrigin", pendingDuplicates: [duplicate] },
global: {
plugins: [[createTestingPinia()], [router]],
},
Expand All @@ -74,7 +82,7 @@ describe("HandoverDocumentDuplicateCheckView:", () => {
}),
).toBeInTheDocument()
expect(
screen.queryByText("Es besteht kein Dublettenverdacht"),
screen.queryByText("Es besteht kein Dublettenverdacht."),
).not.toBeInTheDocument()
})

Expand All @@ -92,7 +100,10 @@ describe("HandoverDocumentDuplicateCheckView:", () => {
publicationStatus: PublicationState.PUBLISHED,
}
render(HandoverDuplicateCheckView, {
props: { pendingDuplicates: [publishedDuplicate, unpublishedDuplicate] },
props: {
documentNumber: "numberOrigin",
pendingDuplicates: [publishedDuplicate, unpublishedDuplicate],
},
global: {
plugins: [[createTestingPinia()], [router]],
},
Expand All @@ -111,7 +122,40 @@ describe("HandoverDocumentDuplicateCheckView:", () => {
}),
).toBeInTheDocument()
expect(
screen.queryByText("Es besteht kein Dublettenverdacht"),
screen.queryByText("Es besteht kein Dublettenverdacht."),
).not.toBeInTheDocument()
})

test("with external user the button should be hidden", async () => {
isInternalUser.value = false
const duplicate: DuplicateRelation = {
documentNumber: "documentNumber",
status: DuplicateRelationStatus.PENDING,
isJdvDuplicateCheckActive: true,
publicationStatus: PublicationState.PUBLISHED,
}
render(HandoverDuplicateCheckView, {
props: {
documentNumber: "numberOrigin",
pendingDuplicates: [duplicate],
},
global: {
plugins: [[createTestingPinia()], [router]],
},
})

expect(screen.getByText("Dublettenprüfung")).toBeInTheDocument()
expect(
screen.getByText("Es besteht Dublettenverdacht."),
).toBeInTheDocument()
expect(screen.getByText("Dokumentationseinheit")).toBeInTheDocument()
expect(
screen.queryByRole("button", {
name: "Dublettenwarnung prüfen",
}),
).not.toBeInTheDocument()
expect(
screen.queryByText("Es besteht kein Dublettenverdacht."),
).not.toBeInTheDocument()
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ test.describe("ensuring the handover of documentunits works as expected", () =>
).toBeVisible()

await expect(
page.getByText("Alle Pflichtfelder sind korrekt ausgefüllt"),
page.getByText("Alle Pflichtfelder sind korrekt ausgefüllt."),
).toBeVisible()

await expect(
Expand Down Expand Up @@ -284,7 +284,7 @@ test.describe("ensuring the handover of documentunits works as expected", () =>
await expect(page.getByText("unveröffentlicht")).toBeVisible()

await expect(
page.getByText("Alle Pflichtfelder sind korrekt ausgefüllt"),
page.getByText("Alle Pflichtfelder sind korrekt ausgefüllt."),
).toBeVisible()

await page
Expand Down Expand Up @@ -339,7 +339,7 @@ test.describe("ensuring the handover of documentunits works as expected", () =>
await navigateToHandover(page, prefilledDocumentUnit.documentNumber!)

await expect(
page.getByText("Alle Pflichtfelder sind korrekt ausgefüllt"),
page.getByText("Alle Pflichtfelder sind korrekt ausgefüllt."),
).toBeVisible()

await test.step("Fehler in der Randnummerprüfung werden angezeigt", async () => {
Expand Down Expand Up @@ -384,7 +384,7 @@ test.describe("ensuring the handover of documentunits works as expected", () =>
page.getByText("Die Randnummern werden neu berechnet"),
).toBeVisible()
await expect(
page.getByText("Die Reihenfolge der Randnummern ist korrekt"),
page.getByText("Die Reihenfolge der Randnummern ist korrekt."),
// The loading spinner is shown for 3s (artificial delay)
).toBeVisible({ timeout: 5_000 })
})
Expand Down
1 change: 0 additions & 1 deletion frontend/test/test-helper/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ const routes = [
name: "caselaw-documentUnit-documentNumber-managementdata",
component: {},
},
{ path: "/managementdata", name: "managementdata", component: {} },
{
path: "/caselaw/periodical-evaluation/:editionId",
name: "caselaw-periodical-evaluation-editionId",
Expand Down

0 comments on commit 5fe7659

Please sign in to comment.