mirror of
https://github.com/inventree/InvenTree.git
synced 2025-09-13 14:11:37 +00:00
Badges for supplier part (#10187)
* Badges for supplier part * Robistify playwright test
This commit is contained in:
@@ -13,6 +13,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
|
|||||||
import { ModelType } from '@lib/enums/ModelType';
|
import { ModelType } from '@lib/enums/ModelType';
|
||||||
import { UserRoles } from '@lib/enums/Roles';
|
import { UserRoles } from '@lib/enums/Roles';
|
||||||
import { apiUrl } from '@lib/functions/Api';
|
import { apiUrl } from '@lib/functions/Api';
|
||||||
|
import { formatDecimal } from '@lib/functions/Formatting';
|
||||||
import { getDetailUrl } from '@lib/functions/Navigation';
|
import { getDetailUrl } from '@lib/functions/Navigation';
|
||||||
import AdminButton from '../../components/buttons/AdminButton';
|
import AdminButton from '../../components/buttons/AdminButton';
|
||||||
import {
|
import {
|
||||||
@@ -370,7 +371,7 @@ export default function SupplierPartDetail() {
|
|||||||
visible={supplierPart.active == false}
|
visible={supplierPart.active == false}
|
||||||
/>,
|
/>,
|
||||||
<DetailsBadge
|
<DetailsBadge
|
||||||
label={`${t`In Stock`}: ${supplierPart.in_stock}`}
|
label={`${t`In Stock`}: ${formatDecimal(supplierPart.in_stock)}`}
|
||||||
color={'green'}
|
color={'green'}
|
||||||
visible={
|
visible={
|
||||||
supplierPart?.active &&
|
supplierPart?.active &&
|
||||||
@@ -386,7 +387,7 @@ export default function SupplierPartDetail() {
|
|||||||
key='no_stock'
|
key='no_stock'
|
||||||
/>,
|
/>,
|
||||||
<DetailsBadge
|
<DetailsBadge
|
||||||
label={`${t`On Order`}: ${supplierPart.on_order}`}
|
label={`${t`On Order`}: ${formatDecimal(supplierPart.on_order)}`}
|
||||||
color='blue'
|
color='blue'
|
||||||
visible={supplierPart.on_order > 0}
|
visible={supplierPart.on_order > 0}
|
||||||
key='on_order'
|
key='on_order'
|
||||||
|
@@ -2,6 +2,7 @@ import { expect } from '@playwright/test';
|
|||||||
import { test } from '../baseFixtures.ts';
|
import { test } from '../baseFixtures.ts';
|
||||||
import {
|
import {
|
||||||
clearTableFilters,
|
clearTableFilters,
|
||||||
|
clickOnRowMenu,
|
||||||
globalSearch,
|
globalSearch,
|
||||||
loadTab,
|
loadTab,
|
||||||
setTableChoiceFilter
|
setTableChoiceFilter
|
||||||
@@ -111,9 +112,11 @@ test('Sales Orders - Shipments', async ({ browser }) => {
|
|||||||
await loadTab(page, 'Sales Orders');
|
await loadTab(page, 'Sales Orders');
|
||||||
|
|
||||||
await clearTableFilters(page);
|
await clearTableFilters(page);
|
||||||
|
|
||||||
// Click through to a particular sales order
|
// Click through to a particular sales order
|
||||||
await page.getByRole('cell', { name: 'SO0006' }).first().click();
|
await page.getByRole('cell', { name: 'SO0006' }).first().click();
|
||||||
await loadTab(page, 'Shipments');
|
await loadTab(page, 'Shipments');
|
||||||
|
await clearTableFilters(page);
|
||||||
|
|
||||||
// Create a new shipment
|
// Create a new shipment
|
||||||
await page.getByLabel('action-button-add-shipment').click();
|
await page.getByLabel('action-button-add-shipment').click();
|
||||||
@@ -129,7 +132,8 @@ test('Sales Orders - Shipments', async ({ browser }) => {
|
|||||||
await page.getByRole('button', { name: 'Cancel' }).click();
|
await page.getByRole('button', { name: 'Cancel' }).click();
|
||||||
|
|
||||||
// Edit one of the existing shipments
|
// Edit one of the existing shipments
|
||||||
await page.getByLabel('row-action-menu-0').click();
|
const cell = page.getByRole('cell', { name: /SHIP-XYZ/ });
|
||||||
|
await clickOnRowMenu(cell);
|
||||||
await page.getByRole('menuitem', { name: 'Edit' }).click();
|
await page.getByRole('menuitem', { name: 'Edit' }).click();
|
||||||
|
|
||||||
// Ensure the form has loaded
|
// Ensure the form has loaded
|
||||||
@@ -155,8 +159,7 @@ test('Sales Orders - Shipments', async ({ browser }) => {
|
|||||||
await page.getByRole('button', { name: 'Submit' }).click();
|
await page.getByRole('button', { name: 'Submit' }).click();
|
||||||
|
|
||||||
// Click through to a particular shipment
|
// Click through to a particular shipment
|
||||||
await page.getByLabel('row-action-menu-0').click();
|
await page.getByRole('cell', { name: tracking_number }).click();
|
||||||
await page.getByRole('menuitem', { name: 'View Shipment' }).click();
|
|
||||||
|
|
||||||
// Click through the various tabs
|
// Click through the various tabs
|
||||||
await loadTab(page, 'Attachments');
|
await loadTab(page, 'Attachments');
|
||||||
@@ -176,14 +179,16 @@ test('Sales Orders - Shipments', async ({ browser }) => {
|
|||||||
|
|
||||||
// Let's try to allocate some stock
|
// Let's try to allocate some stock
|
||||||
await loadTab(page, 'Line Items');
|
await loadTab(page, 'Line Items');
|
||||||
await page.getByLabel('row-action-menu-1').click();
|
|
||||||
|
await clickOnRowMenu(page.getByRole('cell', { name: 'WID-REV-A' }));
|
||||||
await page.getByRole('menuitem', { name: 'Allocate stock' }).click();
|
await page.getByRole('menuitem', { name: 'Allocate stock' }).click();
|
||||||
await page
|
await page
|
||||||
.getByText('Select the source location for the stock allocation')
|
.getByText('Select the source location for the stock allocation')
|
||||||
.waitFor();
|
.waitFor();
|
||||||
await page.getByLabel('number-field-quantity').fill('123');
|
await page.getByLabel('number-field-quantity').fill('123');
|
||||||
await page.getByLabel('related-field-stock_item').click();
|
await page.getByLabel('related-field-stock_item').fill('42');
|
||||||
await page.getByText('Quantity: 42').click();
|
|
||||||
|
await page.getByText('Serial Number: 42').click();
|
||||||
await page.getByRole('button', { name: 'Cancel' }).click();
|
await page.getByRole('button', { name: 'Cancel' }).click();
|
||||||
|
|
||||||
// Search for shipment by tracking number
|
// Search for shipment by tracking number
|
||||||
|
Reference in New Issue
Block a user