Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/fixtures/fixtures.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import PutawayDetailsPage from '@/pages/putaway/putawayDetails/PutawayDetailsPag
import ReceivingPage from '@/pages/receiving/ReceivingPage';
import OldViewShipmentPage from '@/pages/stockMovementShow/OldViewShipmentPage';
import StockMovementShowPage from '@/pages/stockMovementShow/StockMovementShowPage';
import EditTransactionPage from '@/pages/transactions/EditTransactionPgage';
import TransactionListPage from '@/pages/transactions/TransactionListPage';
import CreateUserPage from '@/pages/user/CreateUserPage';
import EditUserPage from '@/pages/user/editUser/EditUserPage';
Expand Down Expand Up @@ -71,6 +72,7 @@ type Fixtures = {
oldViewShipmentPage: OldViewShipmentPage;
putawayListPage: PutawayListPage;
productEditPage: ProductEditPage;
editTransactionPage: EditTransactionPage;
// COMPONENTS
navbar: Navbar;
locationChooser: LocationChooser;
Expand Down Expand Up @@ -145,6 +147,8 @@ export const test = baseTest.extend<Fixtures>({
use(new OldViewShipmentPage(page)),
putawayListPage: async ({ page }, use) => use(new PutawayListPage(page)),
productEditPage: async ({ page }, use) => use(new ProductEditPage(page)),
editTransactionPage: async ({ page }, use) =>
use(new EditTransactionPage(page)),
// COMPONENTS
navbar: async ({ page }, use) => use(new Navbar(page)),
locationChooser: async ({ page }, use) => use(new LocationChooser(page)),
Expand Down
3 changes: 3 additions & 0 deletions src/pages/product/productShow/sections/RecordStockSection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@ import { Page } from '@playwright/test';

import BasePageModel from '@/pages/BasePageModel';
import LineItemsTable from '@/pages/product/productShow/sections/components/LineItemsTable';
import RecordStockTable from '@/pages/product/productShow/sections/components/RecortStockTable';

class RecordStockSection extends BasePageModel {
lineItemsTable: LineItemsTable;
recordStockTable: RecordStockTable;

constructor(page: Page) {
super(page);
this.lineItemsTable = new LineItemsTable(page);
this.recordStockTable = new RecordStockTable(page);
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { Locator, Page } from '@playwright/test';

import BasePageModel from '@/pages/BasePageModel';

class RecordStockTable extends BasePageModel {
constructor(page: Page) {
super(page);
}

get section() {
return this.page.getByRole('region', { name: 'Record Stock' });
}

get table() {
return this.section.getByRole('table');
}

get rows() {
return this.table.getByRole('row');
}

row(index: number) {
return new Row(this.page, this.rows.nth(index));
}
}

class Row extends BasePageModel {
row: Locator;
constructor(page: Page, row: Locator) {
super(page);
this.row = row;
}
}

export default RecordStockTable;
8 changes: 8 additions & 0 deletions src/pages/putaway/steps/CompleteStep.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,14 @@ class CompleteStep extends BasePageModel {
get editButton() {
return this.page.getByTestId('edit-button').first();
}

get validationOnQtyInReceivingBin() {
return this.page
.locator('[class*="alert"]')
.getByText(
/Quantity available 0 is less than quantity to putaway \d+ for product/
);
}
}

export default CompleteStep;
19 changes: 19 additions & 0 deletions src/pages/transactions/EditTransactionPgage.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { Page } from '@playwright/test';

import BasePageModel from '@/pages/BasePageModel';
import TransactionDetailsHeaderTab from '@/pages/transactions/components/TransactionDetailsHeaderTab';

class EditTransactionPage extends BasePageModel {
transactionDetailsHeaderTab: TransactionDetailsHeaderTab;

constructor(page: Page) {
super(page);
this.transactionDetailsHeaderTab = new TransactionDetailsHeaderTab(page);
}

get saveButton() {
return this.page.getByRole('button', { name: 'Save' });
}
}

export default EditTransactionPage;
47 changes: 47 additions & 0 deletions src/pages/transactions/components/TransactionDetailsHeaderTab.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import { Locator, Page } from '@playwright/test';

import BasePageModel from '@/pages/BasePageModel';

class TransactionDetailsHeaderTab extends BasePageModel {
constructor(page: Page) {
super(page);
}

get section() {
return this.page.locator('#transaction-header');
}

get table() {
return this.section.getByRole('table');
}

get rows() {
return this.table.getByRole('row');
}

row(index: number) {
return new Row(this.page, this.rows.nth(index));
}
}

class Row extends BasePageModel {
row: Locator;
constructor(page: Page, row: Locator) {
super(page);
this.row = row;
}

get transactionDateMinuteSelect() {
return this.row.locator('select[name="transactionDate_minute"]');
}

async decreaseMinute() {
const selectedValue = await this.transactionDateMinuteSelect.inputValue();
const parsedValue = parseInt(selectedValue || '0', 10);
const nextMinute = (parsedValue - 1 + 60) % 60;
const optionToSelect = String(nextMinute).padStart(2, '0');
await this.transactionDateMinuteSelect.selectOption(optionToSelect);
}
}

export default TransactionDetailsHeaderTab;
6 changes: 6 additions & 0 deletions src/pages/transactions/components/TransactionTable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ class TransactionTable extends BasePageModel {
.locator('.action-menu-item')
.getByRole('link', { name: 'Delete' });
}

get editButton() {
return this.page
.locator('.action-menu-item')
.getByRole('link', { name: 'Edit' });
}
}

class Row extends BasePageModel {
Expand Down
Loading
Loading