Chapter 5: System Implementation & Validation

Introduction

This Chapter focuses on the practical stage where the designed system is developed, integrated, and made operational. It explains how software components, hardware, databases, and interfaces are implemented according to the project requirements. The chapter also covers system validation through testing methods to ensure functionality, reliability, and performance. Overall, it demonstrates that the proposed system works correctly and is ready for deployment or further improvement.

Implement User Profile feature

Implement User Register Sub-Feature

image64
Figure 1. Back End

Front End

image65
Figure 2. Code
image66
Figure 3. - Picture

Implement Login Sub-Feature

image64
Figure 4. Back End

Front End

  • Code

image67
image68
Figure 5. Picture

Implemente Update Profile Sup-Feature

image69
Figure 6. Back End

Front End

  • Code

image70
image71
Figure 7. Picture

Implement Logout Sup-Feature

image64
Figure 8. Back End

Front End

image72
Figure 9. Code
image73
Figure 10. Picture

Implement Product Market feature

Implement Browse Product sub feature

image74
Figure 11. Back End

Front End

  • Code

image75
image76
Figure 12. Picture

Implement Search Product sub feature

image77
Figure 13. Back End

Front End

image78
Figure 14. Code
image79
Figure 15. Picture

Implement View Product Details sub feature

image74
Figure 16. Back End

Front End

image80
Figure 17. Code
image81
Figure 18. Picture

Implement Inventory Management feature

Implement update inventory sub feature

Back End

Front End

  • Code

  • Picture

Implement integrate POS sub feature

Back End

Front End

  • Code

  • Picture

Implement Configure auto order sub feature

Back End

Front End

  • Code

  • Picture

Implement Order Management feature

Implement place order feature

image82
Figure 19. Back End

Front End

image83
Figure 20. Code
  • Picture

Implement cancel order

image84
Figure 21. Implement cancel order
image85
Figure 22. Back End

Front End

image86
Figure 23. Code
  • Picture

image87

Implement view order details

image88
Figure 24. Back End

Front End

image83
Figure 25. Code
  • Picture

image89

Implement Notifications feature

Implement Manage notification sub feature

image90
Figure 26. Back End

Front End

image91
Figure 27. Code
image92
Figure 28. Picture

Implement Dashboard feature

Implement View order statistics sub feature

Front End

image93
Figure 29. Code
  • Picture

image94

Implement view latest notification sub feature

Front End

image95
Figure 30. Code
  • Picture

image96

Implement view inventory statistics sub feature

Front End

image97
Figure 31. Code
image98
Figure 32. Picture

Implement Support feature

Implement View Accessibility panel sub feature

Back End

Front End

  • Code

  • Picture

Contact Support Team sub feature

Back End

Front End

  • Code

  • Picture

Implement Payment Management feature

Implement add payment method sub feature

image99
Figure 33. Back End

Front End

  • Code

image100
image101
Figure 34. Picture

Implement pay order sub feature

image102
Figure 35. Back End

Front End

image103
Figure 36. Code
  • Picture

image104

Implement Generate invoice sub feature

image105
Figure 37. Back End

Front End

image106
Figure 38. Code
image107
Figure 39. Picture

Implement Products Management feature

Implement Create Product sub feature

image108
Figure 40. Back End

Front End

image109
Figure 41. Code
image110
Figure 42. Picture

Implement Update Product sub feature

image108
Figure 43. Back End

Front End

image109
Figure 44. Code
image111
Figure 45. Picture

Implement Delete Product sub feature

image108
Figure 46. Back End

Front End

image112
Figure 47. Code
image113
Figure 48. Picture

Software testing

This section outlines the verification and testing processes conducted for the Drawbridge Platform, detailing the adopted verification methodology and the results obtained. A functional checklist was employed as part of the verification and testing plan to confirm that the application adheres to the defined specifications and is thoroughly verified .

Test plan

This section describes the system testing framework and the approach to examining individual components within the Drawbridge Platform. It ensures that every part of the application operates correctly. The comprehensive test plan consists of the following elements:

  1. Functional Requirements Testing: Assessing essential application functions to ensure they fulfill user needs effectively .

  2. Core Functions Testing: Concentrating on delivering a dependable and smooth user experience that aligns with users’ expectations.

Testing type

Unit Testing

Unit testing involves assessing individual components of an application independently to confirm they operate as intended according to defined requirements. Typically, this process is automated by developing concise test cases that focus on specific portions of the code, referred to as test units. The primary goal of unit testing is to enhance code quality while reducing the likelihood of encountering bugs in subsequent stages of development.

System Testing

System testing evaluates the overall performance of a system once development is finalized. This testing ensures the system functions effectively, adheres to established requirements and standards, and comprehensively addresses user needs. It involves assessing key aspects such as functionality, performance, security, and integration with other components. As a vital phase, system testing verifies the system’s readiness for practical application and identifies any issues that require resolution prior to release. The drawbridge Platform team carried out this testing to confirm the application meets all specified requirements and performs as intended.

Usability Testing

Usability testing focuses on evaluating the user-friendliness of the application. Its purpose is to determine how well the design and interface meet users’ needs and expectations. This process involves assessing aspects such as navigation simplicity, functional clarity, comprehensibility of instructions, responsiveness, and the overall quality of the design. By identifying potential challenges users might encounter while interacting with the application, this testing plays a crucial role in enhancing user experience and satisfaction. The Drawbridge Platform application team carried out this testing to ensure that the design and user experience effectively align with the requirements of its users.

Test Case

Test cases derived from Software Requirement Specification and validated against Software System.

F1: Account Management

F1.1 - Register User

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F1.1-01

Register Retailer with valid data

User not registered

Role:Retailer, all required fields

1. Go to /register 2. Select Retailer 3. Fill all fields 4. Submit

Account created, redirected to email verification page

Account created and redirected to verify-email page

Pass

TC-F1.1-02

Register Wholesaler with valid data

User not registered

Role:Wholesaler, all required fields

1. Go to /register 2. Select Wholesaler 3. Fill all fields 4. Submit

Account created, verification email sent

Account created and verification email sent

Pass

TC-F1.1-03

Register with mismatched passwords

User not registered

password:pass123 confirmPassword:pass456

1. Go to /register 2. Enter mismatched passwords 3. Submit

Error: 'Passwords do not match'

Error message 'Passwords do not match' displayed

Pass

TC-F1.1-04

Register with password shorter than 6 chars

User not registered

password: abc

1. Go to /register 2. Enter short password 3. Submit

Error: 'Password must be at least 6 characters'

Error message 'Password must be at least 6 characters'

Pass

TC-F1.1-05

Register with already existing email

Email already registered

email: retailer@test.com

1. Go to /register 2. Enter existing email 3. Submit

Error: account already exists

Error message 'Registration failed' displayed

Pass

F1.2 - Login

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F1.2-01

Login with valid Retailer credentials

Account exists and verified

email:retailer@test.com password:password

1. Go to /login 2. Enter credentials 3. Submit

User logged in, dashboard opens

Logged in and redirected to dashboard

Pass

TC-F1.2-02

Login with valid Wholesaler credentials

Account exists and verified

email:wholesaler@test.com password:password

1. Go to /login 2. Enter credentials 3. Submit

User logged in, dashboard opens

Logged in and redirected to dashboard

Pass

TC-F1.2-03

Login with wrong password

Account exists and verified

email:retailer@test.com password:wrongpass

1. Go to /login 2. Enter wrong password 3. Submit

Error: 'Invalid email or password'

Error message 'Invalid email or password'

Pass

TC-F1.2-04

Login with unverified email

Account not yet verified

email:unverified@test.com password:password

1. Go to /login 2. Enter unverified credentials 3. Submit

Error: email not verified, resend option shown

Error shown and resend verification link

Pass

TC-F1.2-05

Login with empty email field

None

email:(empty) password:password

1. Go to /login 2. Leave email empty 3. Submit

Submission blocked, validation error

Browser prevented submission, email field

Pass

F1.3 - Update Profile

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F1.3-01

Update representative name

User logged in

repName: New Name

1. Go to /settings/profile 2. Edit rep name 3. Click Save Changes

Profile updated successfully

Profile saved and success alert shown

Pass

TC-F1.3-02

Save button disabled when no changes made

User logged in, profile loaded

No changes

1. Go to /settings/profile 2. Do not change any field 3. Observe Save button

Save button is disabled

Save button was disabled, could not submit

Pass

TC-F1.3-03

Upload profile image

User logged in

image: valid JPG or PNG

1. Go to /settings/profile 2. Click profile picture 3. Upload image

Image uploaded and profile picture updated

Image uploaded and profile picture changed

Pass

TC-F1.3-04

Save profile when server is down

User logged in, backend unavailable

Any field change

1. Change a field 2. Click Save with backend down

Error message shown, data not saved

Alert 'Failed to update profile' displayed

Pass

F1.4 - Logout

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F1.4-01

Logout from active session

User is logged in

N/A

1. Click Logout in navigation 2. Confirm

Session ended, redirected to login page

Session cleared and redirected to home/login

Pass

TC-F1.4-02

Access protected page after logout

User has logged out

URL: /dashboard

1. Logout 2. Navigate to /dashboard

Redirected to login page

Redirected to /login page

Pass

F2: Product Market

F2.1 - Browse Products

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F2.1-01

Browse all products

Retailer logged in, products exist

Category: All Sort: default

1. Go to /marketplace 2. View product list

Products displayed with name, price, image

All products loaded and displayed in grid

Pass

TC-F2.1-02

Filter products by category

Retailer logged in, categories exist

Category: any available

1. Go to /marketplace 2. Select a category in sidebar

Only selected-category products shown

Products filtered to selected category only

Pass

TC-F2.1-03

Sort products by price low to high

Retailer logged in

Sort: price-low

1. Go to /marketplace 2. Select 'Price: Low to High'

Products ordered ascending by price

Products re-ordered from lowest to highest price

Pass

TC-F2.1-04

Filter by price range

Retailer logged in

priceRange: [100, 500]

1. Go to /marketplace 2. Set price range slider

Only products within price range shown

Products outside range hidden

Pass

TC-F2.1-05

Switch to list view

Retailer logged in

viewMode: list

1. Go to /marketplace 2. Click list view icon

Products displayed in list layout

Layout switched to list view

Pass

TC-F2.1-06

Network error loading products

Backend unavailable

N/A

1. Go to /marketplace with backend down

page displayed empty silently

page displayed empty silently

Pass

F2.2 - Search Products

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F2.2-01

Search by product name

Retailer logged in, products exist

query: existing product name

1. Go to /marketplace 2. Type name in search bar

Matching products listed

Matching products displayed in real time

Pass

TC-F2.2-02

Search by description keyword

Retailer logged in

query: word from product description

1. Type keyword in search bar

Products containing keyword in description shown

Products with matching description displayed

Pass

TC-F2.2-03

Search with no matching results

Retailer logged in

query: xyznotexist

1. Type non-existent keyword

No results / empty state shown

Empty state displayed with no products

Pass

TC-F2.2-04

Search with empty field

Retailer logged in

query: (empty)

1. Leave search bar empty

all products displayed instead

all products displayed instead

Pass

F2.3 - View Product Details

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F2.3-01

View product detail page

Product exists in system

productId: valid

1. Go to /marketplace 2. Click a product card

Product name, price, description, images shown

Product detail page loaded with all info

Pass

TC-F2.3-02

Add product to cart from detail page

Retailer logged in, product in stock

productId: valid quantity: 2

1. Go to product detail 2. Set quantity 3. Click Add to Cart

Product added to cart, cart count updated

Product added and button changed to 'Added to Cart!'

Pass

TC-F2.3-03

Out-of-stock product cannot be added

Product stock = 0

productId: out-of-stock product

1. Go to product detail 2. Observe Add to Cart button

Button shows 'Out of Stock' and is disabled

Button disabled and labeled 'Out of Stock'

Pass

F3: Inventory Management

F3.1 - Update Inventory

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F3.1-01

View inventory list

Retailer logged in, items exist

N/A

1. Go to /inventory 2. View list

Items shown with name, stock, supplier, status

Inventory list loaded with all item details

Pass

TC-F3.1-02

Edit stock quantity inline

Retailer logged in, item exists

itemId: valid newStock: 50

1. Go to /inventory 2. Click edit on stock field 3. Enter new value 4. Save

Stock updated, status badge recalculated

Stock quantity updated and status badge changed

Pass

TC-F3.1-03

Add new inventory item

Retailer logged in

productId: valid stock: 30

1. Go to /inventory 2. Click Add Item 3. Fill modal 4. Submit

New item appears in inventory list

New item added and visible in list

Pass

TC-F3.1-04

Delete inventory item

Retailer logged in, item exists

itemId: valid

1. Go to /inventory 2. Click delete icon 3. Confirm in dialog

Item removed from list

Item deleted and removed from list

Pass

TC-F3.1-05

Search inventory by name or supplier

Retailer logged in

query: item name or supplier name

1. Go to /inventory 2. Type in search bar

Only matching items shown

List filtered to matching items in real time

Pass

TC-F3.1-06

Wholesaler cannot access /inventory

Wholesaler logged in

N/A

1. Log in as Wholesaler 2. Navigate to /inventory

Redirected to /dashboard

Redirected to dashboard immediately

Pass

TC-F3.1-07

Enter invalid stock value

Retailer logged in

stock: -5

1. Edit stock 2. Enter negative number 3. Save

'Update failed' error message shown

No error message shown to user

Fail

F3.2 - Integrated POS System with Platform

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F3.2-01

POS Integration UI

Retailer logged in. POS system available.

N/A

1. Log in as Retailer 2. Navigate to Inventory 3. Look for POS Integration option

POS configuration form shown. Fields: POS Vendor, API Key, Account ID.

Page not built (Backend data model exists but no frontend page)

N/A

TC-F3.2-02

Toggle auto-restock on an inventory item

Retailer logged in, item exists

itemId: valid, autoRestock: false

1. Navigate to /inventory 2. Toggle auto-restock switch on item

Auto-restock toggled, API call made, item updated

Toggle works and updates state

Pass

F3.3 - Configure Auto Order

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F3.3-01

Open auto-restock config modal

Retailer logged in, item exists

itemId: valid

1. Go to /inventory 2. Click settings icon on item

Modal opens with threshold and reorder qty fields

Auto-restock modal opened with current values

Pass

TC-F3.3-02

Save auto-restock configuration

Modal open

minThreshold: 10 reorderQty: 50

1. Open modal 2. Enter values 3. Click Save

Configuration saved to item

Configuration saved successfully

Pass

TC-F3.3-03

Toggle auto-restock on/off

Retailer logged in, item exists

itemId: valid

1. Go to /inventory 2. Click auto-restock toggle

Toggle state changes, API updated

Toggle switched and state updated

Pass

F4: Order Management

F4.1 - Place Order

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F4.1-01

Place order with saved address and payment

Retailer logged in, cart has items

addressId: valid paymentMethodId: valid

1. Add items to cart 2. Go to /checkout 3. Select address and payment 4. Confirm

Order placed, cart cleared, confirmation shown

Order placed and confirmation screen displayed

Pass

TC-F4.1-02

Place order adding new address at checkout

Retailer logged in, no saved address

street, city, country: valid

1. Go to /checkout 2. Add new address 3. Complete and confirm

Address saved, order placed

Address saved and order confirmed

Pass

TC-F4.1-03

Payment failure during checkout

Bad payment method

paymentMethodId: declined card

1. Go to /checkout 2. Confirm with failing payment

'Payment failure' message shown

No error message shown to user

Fail

TC-F4.1-04

Wholesaler blocked from cart/checkout

Wholesaler logged in

N/A

1. Log in as Wholesaler 2. Navigate to /cart or /checkout

Redirected to /dashboard

Redirected to dashboard

Pass

4.2 - Cancel Order

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F4.2-01

Cancel a pending order

Order status: PENDING

orderId: valid pending order

1. Go to /orders 2. Open action menu 3. Select Cancel 4. Confirm

Order status changed to CANCELLED

status updated to CANCELLED

Pass

TC-F4.2-02

Dismiss cancellation dialog

Order status: PENDING

orderId: valid

1. Click Cancel on order 2. Dismiss confirm dialog

Order remains unchanged

Cancellation aborted, order status unchanged

Pass

TC-F4.2-03

Cancel already shipped order

Order status: SHIPPED

orderId: shipped order

1. Try to cancel a shipped order

'Order already shipped' message shown

'Order already shipped' message shown

Pass

F4.3 - View Orders Details

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F4.3-01

View orders list as Retailer

Retailer logged in, orders exist

N/A

1. Go to /orders

Orders shown with ID, date, total, status

All retailer orders loaded and displayed

Pass

TC-F4.3-02

View orders list as Wholesaler

Wholesaler logged in, orders exist

N/A

1. Log in as Wholesaler 2. Go to /orders

Incoming orders shown with retailer name

Wholesaler orders displayed with retailer info

Pass

TC-F4.3-03

View individual order detail

User logged in, order exists

orderId: valid

1. Go to /orders 2. Click an order

Order items, shipping, payment, status shown

Order detail page loaded with all info

Pass

TC-F4.3-04

Filter orders by status

Multiple orders exist

statusFilter: PENDING

1. Go to /orders 2. Select status filter

Only orders with selected status shown

Orders filtered to PENDING status only

Pass

TC-F4.3-05

Sort orders by date

Multiple orders exist

sortField: placedAt sortOrder: desc

1. Go to /orders 2. Click date column header

Orders sorted newest first

Orders sorted by date descending

Pass

F5: Notifications

F5.1 - Push Notification

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F5.1-01

View notifications inbox

Notifications exist

N/A

1. Go to /notifications

Notifications listed with title, type, timestamp

Notifications loaded and displayed

Pass

TC-F5.1-02

Mark single notification as read

Unread notification exists

notificationId: valid

1. Go to /notifications 2. Click an unread notification

Notification marked as read, styling changes

Notification marked read and style updated

Pass

TC-F5.1-03

Mark all notifications as read

Multiple unread notifications

N/A

1. Go to /notifications 2. Click 'Mark all read'

All notifications marked read

All notifications marked as read

Pass

TC-F5.1-04

System sends low-stock notification

Item below threshold

eventType: LOW_STOCK

1. Inventory drops below threshold 2. Check notifications inbox

Notification of type INVENTORY appears

Low-stock notification received and displayed in inbox

Pass

F5.2 - Manage Notifications

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F5.2-01

View notification preferences page

User logged in

N/A

1. Go to /settings/notifications

Event types with Email/SMS/Push channel shown

Preferences page loaded with all channel options

Pass

TC-F5.2-02

Toggle Email preference for an event

User logged in

preferenceKey: order-updates channel: EMAIL

1. Go to /settings/notifications 2. Click Email chip for event

Preference saved, chip shows active/inactive

Chip toggled and preference updated

Pass

TC-F5.2-03

Enable Push notifications

Browser supports push

channel: PUSH

1. Go to /settings/notifications 2. Click Push chip 3. Accept browser permission

Push subscription registered

Browser permission granted and push subscription registered

Pass

F6: Dashboard

F6.1 - View Inventory Statistics

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F6.1-01

View inventory stats on Retailer dashboard

Retailer logged in, items exist

N/A

1. Go to /dashboard 2. Check inventory section

Total items, low-stock count, auto-restock count shown

Inventory KPI cards displayed with correct counts

Pass

TC-F6.1-02

Inventory stats not shown for Wholesaler

Wholesaler logged in

N/A

1. Log in as Wholesaler 2. Go to /dashboard

Inventory section hidden, order KPIs shown

Inventory section not shown to wholesaler

Pass

F6.2 - View Order Statistics

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F6.2-01

View order stats on Retailer dashboard

Retailer logged in, orders exist

N/A

1. Go to /dashboard

Total orders, pending count, revenue shown with chart

Order KPI cards and bar chart displayed

Pass

TC-F6.2-02

View order stats on Wholesaler dashboard

Wholesaler logged in, orders exist

N/A

1. Log in as Wholesaler 2. Go to /dashboard

Wholesaler order KPIs displayed

Wholesaler-specific order stats displayed

Pass

TC-F6.2-03

Dashboard with no orders

No orders exist

N/A

1. Go to /dashboard with no orders

Zero state shown in KPI cards

KPI cards displayed with 0 values

Pass

F6.3 - View Latest Notifications

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F6.3-01

View latest notifications on dashboard

Notifications exist

N/A

1. Go to /dashboard 2. Check notifications panel

Latest notifications shown with title and type

Recent notifications displayed

Pass

TC-F6.3-02

Navigate to full inbox from dashboard

User logged in

N/A

1. Go to /dashboard 2. Click 'View All' or a notification

Redirected to /notifications page

Navigated to full notifications inbox

Pass

TC-F6.3-03

No notifications on dashboard

No notifications

N/A

1. Go to /dashboard with no notifications

Notifications section appears empty with no message

Notifications section appears empty with no message

Pass

F7: Support

F7.1 - View Accessibility Panel

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F7.1-01

View Accessibility Panel (Settings)

User logged in

N/A

1. Navigate to Settings 2. Look for accessibility / settings

Accessibility/theme options visible

options visible available

Pass

F7.2 - Contact Support Team

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F7.2-01

Submit ticket with required fields empty

User logged in.

Subject: (empty) Message: (empty)

1. Navigate to /support 2. Leave required fields empty 3. Click Submit

"All fields are required" message shown. Ticket NOT submitted.

"All fields are required" shown. Ticket NOT submitted.

Pass

TC-F7.2-02

Submit a support ticket via contact form

User logged in.

Subject: Login issue Message: Cannot login to account Email: user@test.com

1. Navigate to /support 2. Fill in subject, message, email fields 3. Click Submit

Support ticket created. Confirmation message shown.

Support ticket created. Confirmation message shown.

Pass (N/A)

F8: Payment Management

F8.1 - Add Payment Method

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F8.1-01

Add card

Retailer logged in

cardNumber:4111111111111111 expiry:12/27 cvv:123 name:Test User

1. Go to /settings/payments 2. Click Add New Card 3. Fill details 4. Submit

Card saved and shown as Visa ** 1111

card added and displayed in payment methods list

Pass

TC-F8.1-02

First card auto-set as default

No cards saved

First valid card details

1. Go to /settings/payments 2. Add first card

Card saved and marked as default automatically

Card added and default badge displayed

Pass

TC-F8.1-03

Delete a payment method

At least one card saved

paymentMethodId: valid

1. Go to /settings/payments 2. Click Delete 3. Confirm dialog

Card removed from list

Card deleted and removed from list

Pass

TC-F8.1-04

Set non-default card as default

Multiple cards saved

paymentMethodId: non-default card

1. Go to /settings/payments 2. Click Set Default on card

Card marked as default, previous default unmarked

Default card updated successfully

Pass

F8.2 - Pay Order

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F8.2-01

Pay order with saved payment method

Cart has items, address and card saved

paymentMethodId: valid addressId: valid

1. Go to /checkout 2. Select address and payment 3. Confirm

Payment processed, order confirmed, cart cleared

Order placed and confirmation screen shown

Pass

TC-F8.2-02

Pay order adding new card at checkout

Cart has items, no saved card

cardNumber:4111…​ expiry:12/27 cvv:123

1. Go to /checkout 2. Add new card 3. Confirm order

New card saved, payment processed, order confirmed

Card added and order confirmed successfully

Pass

F8.3 - Generate Invoice

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F8.3-01

Download invoice from order detail

Order exists with completed payment

orderId: valid completed order

1. Go to /orders 2. Click order 3. Click Download Invoice

Invoice opens in new window for printing/saving

Invoice opened in new window with print dialog

Pass

TC-F8.3-02

Invoice contains correct order data

Completed order loaded

orderId: valid with known items

1. Go to /orders/:id 2. Click Download Invoice 3. Review contents

Invoice shows order ID, date, items, qty, prices, totals

Invoice displayed all correct order details

Pass

F9: Product Management

F9.1 - Create Product

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F9.1-01

Create product with all required fields

Wholesaler logged in

name:Coffee Beans category:Food price:150 MOQ:10 stock:100

1. Go to /products 2. Click Add Product 3. Fill form 4. Submit

Product created and appears in list

Product created and visible in manage products list

Pass

TC-F9.1-02

Create product with empty name

Wholesaler logged in

name: (empty)

1. Go to /products/new 2. Leave name empty 3. Submit

'Product name is required' shown

Error message 'Product name is required' displayed

Pass

TC-F9.1-03

Upload product images

Wholesaler logged in

1-10 JPG/PNG files, each < 5MB

1. Fill product form 2. Upload images 3. Submit

Images uploaded and linked to product

Images uploaded and shown on product

Pass

TC-F9.1-04

Upload non-image file

Product form open

file: document.pdf

1. Try to upload PDF as product image

'Please select image files only' shown

Error message 'Please select image files only'

Pass

TC-F9.1-05

Retailer blocked from /products

Retailer logged in

N/A

1. Log in as Retailer 2. Navigate to /products

Redirected to /dashboard

Redirected to dashboard

Pass

F9.2 - Edit Product

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F9.2-01

Edit product name and price

Wholesaler logged in, product exists

productId: valid newName: Updated Product newPrice: 175

1. Go to /products 2. Click Edit 3. Update fields 4. Submit

Product updated with new values

Product saved with updated name and price

Pass

TC-F9.2-02

Edit product images

Product exists with images

productId: valid newImage: valid JPG

1. Go to /products/edit/:id 2. Upload new image 3. Submit

New image added to product

Image uploaded and added to product

Pass

TC-F9.2-03

Enter invalid price on edit

Product exists

price: -50

1. Edit product 2. Set negative price 3. Submit

'Invalid field values' shown

No error shown

Fail

F9.3 - Delete Product

Test Case ID Description Precondition Test Data Steps Expected Outcome Actual Outcome Status (Pass/Fail)

TC-F9.3-01

Delete product with confirmation

Wholesaler logged in, product exists

productId: valid

1. Go to /products 2. Click Delete 3. Confirm dialog

Product permanently removed from list

Product deleted and removed from list

Pass