chore: harden reliability checks #2

Merged
nalalangan merged 67 commits from main-new into main 2026-05-25 14:28:32 -09:00
4 changed files with 27 additions and 5 deletions
Showing only changes of commit 254d166e84 - Show all commits

View File

@ -91,6 +91,14 @@ export default function ManageStores() {
{/* Current Stores Section */}
<section className="manage-section">
<h2>Your Stores ({householdStores.length})</h2>
<p className="manage-stores-help">
Available item management lives inside each store card below.
</p>
{!isAdmin && (
<p className="manage-stores-note">
Only household owners and admins can manage store item catalogs.
</p>
)}
{householdStores.length === 0 ? (
<p className="empty-message">No stores added yet.</p>
) : (

View File

@ -21,7 +21,7 @@ function itemImageSource(item) {
export default function StoreAvailableItemsManager({ householdId, store, isAdmin }) {
const toast = useActionToast();
const [expanded, setExpanded] = useState(false);
const [expanded, setExpanded] = useState(true);
const [items, setItems] = useState([]);
const [query, setQuery] = useState("");
const [loading, setLoading] = useState(false);
@ -123,15 +123,15 @@ export default function StoreAvailableItemsManager({ householdId, store, isAdmin
<div className="store-available-items">
<div className="store-available-items-header">
<div>
<h4>Available Items</h4>
<p>Curate what members see for {store.name}.</p>
<h4>Store Item Catalog</h4>
<p>Manage the available item list for {store.name}.</p>
</div>
<button
type="button"
className="btn-secondary btn-small"
onClick={() => setExpanded((value) => !value)}
>
{expanded ? "Hide" : "Manage"}
{expanded ? "Hide Items" : "Manage Items"}
</button>
</div>

View File

@ -25,6 +25,20 @@
margin-bottom: 1rem;
}
.manage-stores-help {
margin: -0.25rem 0 1rem;
color: var(--text-secondary);
}
.manage-stores-note {
margin: -0.25rem 0 1rem;
padding: 0.875rem 1rem;
border: 1px solid var(--border);
border-radius: 8px;
background: var(--background);
color: var(--text-secondary);
}
/* Stores List */
.stores-list {
display: grid;

View File

@ -154,7 +154,7 @@ test("manage stores lets admins import and curate available items", async ({ pag
const storeCard = page.locator(".store-card").filter({ hasText: "Costco" });
await expect(storeCard).toBeVisible();
await storeCard.getByRole("button", { name: "Manage" }).click();
await expect(storeCard.getByText("Store Item Catalog")).toBeVisible();
await expect(storeCard.getByText("milk")).toBeVisible();