Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 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));
}
}
Comment thread
kkrawczyk123 marked this conversation as resolved.

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"]');
Comment thread
kkrawczyk123 marked this conversation as resolved.
}

async decreaseMinute() {
Comment thread
kkrawczyk123 marked this conversation as resolved.
const currentValue = await this.transactionDateMinuteSelect.inputValue();
const current = parseInt(currentValue || '0', 10);
Comment thread
kkrawczyk123 marked this conversation as resolved.
Outdated
const next = (current - 1 + 60) % 60;
Comment thread
kkrawczyk123 marked this conversation as resolved.
Outdated
const formatted = String(next).padStart(2, '0');
await this.transactionDateMinuteSelect.selectOption(formatted);
}
}

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