From 75e84d3c5995166700068f14e964edfe41d9cf42 Mon Sep 17 00:00:00 2001 From: Gregor Weber Date: Thu, 8 Aug 2024 15:42:58 +0200 Subject: [PATCH] test: seqvars e2e for preset values --- .../seqvar-filtration.spec.ts | 76 +++++++++++++++++++ .../seqvars/components/QualityControls.vue | 27 +++++-- .../components/genotype/GenotypeControls.vue | 1 + .../genotype/InheritanceModeControls.vue | 13 +++- .../components/ui/CollapsibleGroup.vue | 2 +- .../src/seqvars/views/SeqvarsFiltration.vue | 2 + 6 files changed, 110 insertions(+), 11 deletions(-) diff --git a/frontend/end-to-end-tests/seqvar-filtration.spec.ts b/frontend/end-to-end-tests/seqvar-filtration.spec.ts index 98e35b4ed..18453e7f3 100644 --- a/frontend/end-to-end-tests/seqvar-filtration.spec.ts +++ b/frontend/end-to-end-tests/seqvar-filtration.spec.ts @@ -6,6 +6,82 @@ test.beforeEach(async ({ page }) => { ) }) +test('preset values are set correctly,', async ({ page }) => { + await page.getByLabel('Create query based on de novo').click() + + // genotype + await expect( + page.locator( + '[aria-label="Genotype presets"] [aria-selected="true"]:has-text("de novo")', + ), + ).toBeVisible() + await expect( + page.locator( + '.v-select:has(label:has-text("recessive")):has-text("disabled")', + ), + ).toBeVisible() + + await expect(page.locator('#index')).toBeChecked() + await expect( + page.locator( + 'fieldset:has(legend:has-text("index")) [aria-checked="true"]', + ), + ).toContainText(['1/0', '1/1']) + + await expect(page.locator('#father')).toBeChecked() + await expect( + page.locator( + 'fieldset:has(legend:has-text("father")) [aria-checked="true"]', + ), + ).toContainText('0/0') + + await expect(page.locator('#mother')).toBeChecked() + await expect( + page.locator( + 'fieldset:has(legend:has-text("mother")) [aria-checked="true"]', + ), + ).toContainText('0/0') + + // frequency + await expect( + page.locator( + '[aria-label="Frequency presets"] [aria-selected="true"]:has-text("dominant strict")', + ), + ).toBeVisible() + await expect(page.locator("[id='gnomAd exomes']")).toBeChecked() + await expect(page.locator("[id='gnomAd genomes']")).toBeChecked() + await expect(page.locator("[id='gnomAd mitochondrial']")).toBeChecked({ + checked: false, + }) + await expect(page.locator("[id='in-house DB']")).toBeChecked() + await expect(page.locator('#HelixMTdb')).toBeChecked({ checked: false }) + + // effects + await expect( + page.locator( + '[aria-label="Effects presets"] [aria-selected="true"]:has-text("AA change + splicing")', + ), + ).toBeVisible() + await expect(page.locator('input[aria-label="non-coding"]')).toBeChecked({ + checked: false, + }) + await expect(page.locator('input[aria-label="missense"]')).toBeChecked() + + // quality + await expect( + page.locator( + '[aria-label="Quality presets"] [aria-selected="true"]:has-text("super strict")', + ), + ).toBeVisible() + const section = await page.locator('[aria-label="Quality"]') + for (const loc of await section.locator('[aria-label="min DP het"]').all()) { + await expect(loc).toHaveValue('10') + } + for (const loc of await section.locator('[aria-label="max DP hom"]').all()) { + await expect(loc).toHaveValue('5') + } +}) + test('modified genotype preset is marked', async ({ page }) => { page.locator('button[aria-label="Create query based on dominant"]').click() diff --git a/frontend/src/seqvars/components/QualityControls.vue b/frontend/src/seqvars/components/QualityControls.vue index d375dc29d..9fc78b025 100644 --- a/frontend/src/seqvars/components/QualityControls.vue +++ b/frontend/src/seqvars/components/QualityControls.vue @@ -45,12 +45,27 @@ const model = defineModel({ required: true }) >{{ item.sample }} - - - - - - +
+ {{ item.sample }} + + + + + + +
diff --git a/frontend/src/seqvars/components/genotype/GenotypeControls.vue b/frontend/src/seqvars/components/genotype/GenotypeControls.vue index 074a7b448..bb6335e7d 100644 --- a/frontend/src/seqvars/components/genotype/GenotypeControls.vue +++ b/frontend/src/seqvars/components/genotype/GenotypeControls.vue @@ -74,6 +74,7 @@ const recessiveMode = computed({ ({ required: true, }) +const props = defineProps<{ legend: string }>() + const { WILD_TYPE, HET_ALT, HOM_ALT } = InheritanceMode type GenotypeKey = Exclude< @@ -73,7 +75,8 @@ const ANY_ITEMS_WITH_LABELS = [ diff --git a/frontend/src/seqvars/components/ui/CollapsibleGroup.vue b/frontend/src/seqvars/components/ui/CollapsibleGroup.vue index 4214e269a..d5e73f43e 100644 --- a/frontend/src/seqvars/components/ui/CollapsibleGroup.vue +++ b/frontend/src/seqvars/components/ui/CollapsibleGroup.vue @@ -27,7 +27,7 @@ const isOpen = ref(true)
{{ summary }}
-
+
diff --git a/frontend/src/seqvars/views/SeqvarsFiltration.vue b/frontend/src/seqvars/views/SeqvarsFiltration.vue index 4d2ca4f9b..3726d49f7 100644 --- a/frontend/src/seqvars/views/SeqvarsFiltration.vue +++ b/frontend/src/seqvars/views/SeqvarsFiltration.vue @@ -196,6 +196,7 @@ const setGenotypeToPreset = (choice: SeqvarsGenotypePresetChoice) => { >
{ >