forked from yvv/decision
v3 : « Voter en lot » sur sa propre ligne, au-dessus des vues ; C23 se donne le temps de la chaîne
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -85,10 +85,14 @@ test('C22 — le vote groupé : une section en un geste, et l’article à deux
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('C23 — le vote par la chaîne Ğ1 : un geste, confirmé par l’indexeur ; le dernier fait foi', async ({ page, browser }) => {
|
test('C23 — le vote par la chaîne Ğ1 : un geste, confirmé par l’indexeur ; le dernier fait foi', async ({ page, browser }) => {
|
||||||
|
// The chain is waited for: the server reads the indexer every 10 seconds.
|
||||||
|
test.setTimeout(90_000);
|
||||||
await signIn(page, 'Chiara');
|
await signIn(page, 'Chiara');
|
||||||
await wallet(page, [ALICE]);
|
await wallet(page, [ALICE]);
|
||||||
await page.goto(DOC);
|
await page.goto(DOC);
|
||||||
const { control } = await chain(page);
|
const { control } = await chain(page);
|
||||||
|
await expect(page.getByRole('button', { name: /^Voter en lot/ })).toBeVisible();
|
||||||
|
await shot(page, '0-entete-voter-en-lot');
|
||||||
// The basket: two articles in force, for, in one transaction.
|
// The basket: two articles in force, for, in one transaction.
|
||||||
await page.getByRole('button', { name: /^Voter en lot/ }).click();
|
await page.getByRole('button', { name: /^Voter en lot/ }).click();
|
||||||
const panel = page.locator('aside.panel');
|
const panel = page.locator('aside.panel');
|
||||||
|
|||||||
@@ -144,12 +144,14 @@
|
|||||||
· <button class="linkish" type="button" onclick={() => openPanel({ unitId: null, proposalId: null, tab: 'settings' })}>{t('settings.title')}</button>
|
· <button class="linkish" type="button" onclick={() => openPanel({ unitId: null, proposalId: null, tab: 'settings' })}>{t('settings.title')}</button>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="controls">
|
{#if canVote}
|
||||||
{#if canVote}
|
<div class="basket-row">
|
||||||
<button class="btn small basket-btn" type="button" onclick={() => openPanel({ unitId: null, proposalId: null, tab: 'basket' })}>
|
<button class="btn small basket-btn" type="button" onclick={() => openPanel({ unitId: null, proposalId: null, tab: 'basket' })}>
|
||||||
{basket.size ? t('doc.basket.count', { n: basket.size }) : t('doc.basket')}
|
{basket.size ? t('doc.basket.count', { n: basket.size }) : t('doc.basket')}
|
||||||
</button>
|
</button>
|
||||||
{/if}
|
</div>
|
||||||
|
{/if}
|
||||||
|
<div class="controls">
|
||||||
<div class="seg" role="radiogroup" aria-label={t('doc.view.label')}>
|
<div class="seg" role="radiogroup" aria-label={t('doc.view.label')}>
|
||||||
{#each VIEWS as v (v)}
|
{#each VIEWS as v (v)}
|
||||||
<button type="button" role="radio" aria-checked={doc.mode === v} class:on={doc.mode === v} onclick={() => doc.setMode(v)}>{t(`doc.view.${v}`)}</button>
|
<button type="button" role="radio" aria-checked={doc.mode === v} class:on={doc.mode === v} onclick={() => doc.setMode(v)}>{t(`doc.view.${v}`)}</button>
|
||||||
@@ -306,10 +308,13 @@
|
|||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin-top: 1.6rem;
|
margin-top: 1.6rem;
|
||||||
}
|
}
|
||||||
|
.basket-row {
|
||||||
|
margin-top: 1.4rem;
|
||||||
|
}
|
||||||
|
.basket-row + .controls {
|
||||||
|
margin-top: 0.8rem;
|
||||||
|
}
|
||||||
.basket-btn {
|
.basket-btn {
|
||||||
flex-basis: 100%;
|
|
||||||
justify-self: start;
|
|
||||||
max-width: max-content;
|
|
||||||
background: var(--water);
|
background: var(--water);
|
||||||
color: var(--on-water);
|
color: var(--on-water);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user