@@ -251,9 +251,9 @@ onMounted(load);
|
|||||||
<div><dt>Active inventory</dt><dd>{{ dashboard.counts.activeInventory }}</dd></div>
|
<div><dt>Active inventory</dt><dd>{{ dashboard.counts.activeInventory }}</dd></div>
|
||||||
<div><dt>Available listings</dt><dd>{{ dashboard.counts.availableListings }}</dd></div>
|
<div><dt>Available listings</dt><dd>{{ dashboard.counts.availableListings }}</dd></div>
|
||||||
<div><dt>Sold inventory</dt><dd>{{ dashboard.counts.soldInventory }}</dd></div>
|
<div><dt>Sold inventory</dt><dd>{{ dashboard.counts.soldInventory }}</dd></div>
|
||||||
<div><dt>Missing images</dt><dd>{{ dashboard.counts.missingImages }}</dd></div>
|
<div><dt>Missing images</dt><dd><a href="#inventory-title">{{ dashboard.counts.missingImages }}</a></dd></div>
|
||||||
<div><dt>Missing pricing</dt><dd>{{ dashboard.counts.missingPricing }}</dd></div>
|
<div><dt>Missing pricing</dt><dd><a href="#pricing-title">{{ dashboard.counts.missingPricing }}</a></dd></div>
|
||||||
<div><dt>Stale pricing</dt><dd>{{ dashboard.counts.stalePricing }}</dd></div>
|
<div><dt>Stale pricing</dt><dd><a href="#pricing-title">{{ dashboard.counts.stalePricing }}</a></dd></div>
|
||||||
<div><dt>Acquisition cost</dt><dd>${{ (dashboard.financials.totalAcquisitionCostMinor / 100).toFixed(2) }}</dd></div>
|
<div><dt>Acquisition cost</dt><dd>${{ (dashboard.financials.totalAcquisitionCostMinor / 100).toFixed(2) }}</dd></div>
|
||||||
<div><dt>Asking value</dt><dd>${{ (dashboard.financials.totalAskingValueMinor / 100).toFixed(2) }}</dd></div>
|
<div><dt>Asking value</dt><dd>${{ (dashboard.financials.totalAskingValueMinor / 100).toFixed(2) }}</dd></div>
|
||||||
<div><dt>Market value</dt><dd>${{ (dashboard.financials.totalMarketValueMinor / 100).toFixed(2) }}</dd></div>
|
<div><dt>Market value</dt><dd>${{ (dashboard.financials.totalMarketValueMinor / 100).toFixed(2) }}</dd></div>
|
||||||
@@ -351,7 +351,7 @@ onMounted(load);
|
|||||||
<button class="button button--primary" type="submit" :disabled="isSaving">Record acquisition</button>
|
<button class="button button--primary" type="submit" :disabled="isSaving">Record acquisition</button>
|
||||||
</form>
|
</form>
|
||||||
<form class="showcase-panel" @submit.prevent="calculatePricing">
|
<form class="showcase-panel" @submit.prevent="calculatePricing">
|
||||||
<h2>Calculate market value</h2>
|
<h2 id="pricing-title">Calculate market value</h2>
|
||||||
<label class="fixture-label" for="pricing-inventory">Inventory copy</label>
|
<label class="fixture-label" for="pricing-inventory">Inventory copy</label>
|
||||||
<select id="pricing-inventory" v-model="pricingInventoryId" class="fixture-input" required>
|
<select id="pricing-inventory" v-model="pricingInventoryId" class="fixture-input" required>
|
||||||
<option value="" disabled>Select a copy</option>
|
<option value="" disabled>Select a copy</option>
|
||||||
@@ -383,7 +383,7 @@ onMounted(load);
|
|||||||
<p v-if="!providerMappings.length" class="state state--empty">Select a product to view mappings.</p>
|
<p v-if="!providerMappings.length" class="state state--empty">Select a product to view mappings.</p>
|
||||||
<ul v-else><li v-for="mapping in providerMappings" :key="mapping.id">{{ mapping.providerId }} · {{ mapping.mappingType }} · {{ mapping.externalIdentifier ?? mapping.searchQuery }}</li></ul>
|
<ul v-else><li v-for="mapping in providerMappings" :key="mapping.id">{{ mapping.providerId }} · {{ mapping.mappingType }} · {{ mapping.externalIdentifier ?? mapping.searchQuery }}</li></ul>
|
||||||
</section>
|
</section>
|
||||||
<section class="admin-list" aria-labelledby="inventory-title">
|
<section id="inventory-title" class="admin-list" aria-labelledby="inventory-title">
|
||||||
<h2 id="inventory-title">Physical inventory</h2>
|
<h2 id="inventory-title">Physical inventory</h2>
|
||||||
<p v-if="!inventory.length && !isLoading" class="state state--empty">No physical copies yet.</p>
|
<p v-if="!inventory.length && !isLoading" class="state state--empty">No physical copies yet.</p>
|
||||||
<ul v-else><li v-for="item in inventory" :key="item.id" :data-product-id="item.productId"><span>{{ item.id }}</span> · {{ item.status }} <RouterLink :to="{ name: 'admin-image-manager', params: { id: item.id } }">Manage images</RouterLink></li></ul>
|
<ul v-else><li v-for="item in inventory" :key="item.id" :data-product-id="item.productId"><span>{{ item.id }}</span> · {{ item.status }} <RouterLink :to="{ name: 'admin-image-manager', params: { id: item.id } }">Manage images</RouterLink></li></ul>
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ test('signs in and publishes a listing after adding an inventory image', async (
|
|||||||
await expect(page.getByRole('status', { name: 'Loading inventory...' })).toHaveCount(0);
|
await expect(page.getByRole('status', { name: 'Loading inventory...' })).toHaveCount(0);
|
||||||
await expect(page.getByRole('heading', { name: 'At a glance' })).toBeVisible();
|
await expect(page.getByRole('heading', { name: 'At a glance' })).toBeVisible();
|
||||||
await expect(page.getByText('Active inventory')).toBeVisible();
|
await expect(page.getByText('Active inventory')).toBeVisible();
|
||||||
|
await expect(page.locator('.dashboard-summary__grid div').filter({ hasText: 'Missing images' }).getByRole('link')).toHaveAttribute('href', '#inventory-title');
|
||||||
|
|
||||||
const category = page.locator('#product-category option').nth(1);
|
const category = page.locator('#product-category option').nth(1);
|
||||||
await expect(category).toBeAttached();
|
await expect(category).toBeAttached();
|
||||||
|
|||||||
Reference in New Issue
Block a user