Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
7e63409
`boOrdersViewBasePage` : Fixes `modifyOrderStatus` method for <8.2 ve…
Progi1984 Apr 10, 2025
216ad66
1.7.6.x
davidPrestashop Apr 11, 2025
9284153
new product save button
davidPrestashop Apr 16, 2025
c40d2f2
eslint
davidPrestashop Apr 16, 2025
f91eebe
new product save button
davidPrestashop Apr 16, 2025
3b89e0c
test playwright fill input product setStockLocation()
davidPrestashop Apr 16, 2025
aca8261
playwright fill input
davidPrestashop Apr 16, 2025
757d587
playwright fill input
davidPrestashop Apr 16, 2025
95f0c8c
playwright fill input force
davidPrestashop Apr 16, 2025
5035423
tabPricing set value
davidPrestashop Apr 16, 2025
8b5add8
- goToSubCategory remove wait for url
davidPrestashop May 7, 2025
75a23f0
commit Aurélien
davidPrestashop May 7, 2025
b3476f4
- goToSubCategory remove wait for url
davidPrestashop May 7, 2025
bf9b16d
Change locator In Stock in v1.7.8
AureRita May 7, 2025
8110f12
delete the second tabstock and change the locator of label when in stock
AureRita May 13, 2025
69de68f
change locator of labelwhenoutofstock
AureRita May 13, 2025
5fa022a
Revert tabstock on <v1.7.8 because the change is set on <v8.0.0
AureRita May 13, 2025
ed99923
Message change at the end of the process autoupgrade
AureRita May 15, 2025
a1d5c82
Bump @typescript-eslint/eslint-plugin from 8.29.0 to 8.30.1
dependabot[bot] Apr 21, 2025
caef5b0
Bump @typescript-eslint/parser from 8.29.0 to 8.30.1
dependabot[bot] Apr 21, 2025
3563f7b
Bump @types/node from 22.14.0 to 22.14.1
dependabot[bot] Apr 14, 2025
c889109
Bump tsc-alias from 1.8.13 to 1.8.15
dependabot[bot] Apr 23, 2025
27e67e4
Bump @faker-js/faker from 9.6.0 to 9.7.0
dependabot[bot] Apr 23, 2025
6e7ef93
Bump @s3pweb/keycloak-admin-client-cjs from 26.1.4 to 26.2.0
dependabot[bot] Apr 23, 2025
6e925d2
Bump @playwright/test from 1.51.1 to 1.52.0
dependabot[bot] Apr 23, 2025
4ab4062
`boProductsCreatePage` : Change the page title
Progi1984 Apr 24, 2025
8f7a141
Increase timeout to import a translation package
jolelievre Apr 23, 2025
f374b00
Increase timeout to get data on dashboard
jolelievre Apr 24, 2025
58c3fc4
Increase timeout for debug bar
jolelievre Apr 24, 2025
a31bd7a
Wait for sources to be loadded before counting them
jolelievre Apr 24, 2025
77036f5
Wait for images to be loaded before counting them
jolelievre Apr 24, 2025
991c109
Replace default value networkidle with load, also replaces all usages…
jolelievre Apr 24, 2025
437858b
Special case waiting in store edition
jolelievre Apr 24, 2025
3486e05
Bump @typescript-eslint/parser from 8.30.1 to 8.31.0
dependabot[bot] Apr 28, 2025
86b1734
Bump @typescript-eslint/eslint-plugin from 8.30.1 to 8.31.0
dependabot[bot] Apr 28, 2025
b0c63b8
Wait for url more stable with multiple grid manipulated on the same page
jolelievre Apr 28, 2025
fca4e82
Add optional clickOptions parameter
jolelievre Apr 28, 2025
2992712
Handle country with states in brands and suppliers
jolelievre Apr 28, 2025
d555a71
Fix category selector to be unique
jolelievre Apr 29, 2025
29a1b1b
Make selectors unique in my account
jolelievre Apr 29, 2025
e2d7eff
Use clickAndWait instead of simple click, make alert selector stricte…
jolelievre Apr 30, 2025
94be47e
Make selector stricter for module confirm alert
jolelievre May 1, 2025
44e1b9e
Bump @typescript-eslint/parser from 8.31.0 to 8.31.1
dependabot[bot] May 5, 2025
463dc64
Bump @typescript-eslint/eslint-plugin from 8.31.0 to 8.31.1
dependabot[bot] May 5, 2025
eb2581e
`foModalQuickViewPage` : Improve addToCartByQuickView
Progi1984 Apr 8, 2025
8d4ef81
Bump fast-xml-parser from 5.2.0 to 5.2.2
dependabot[bot] May 5, 2025
f44f877
Bump @types/node from 22.14.1 to 22.15.3
dependabot[bot] May 6, 2025
5ed6528
Migrate `@pages/FO/{classic|hummingbird}/orderTracking/guestOrderTrac…
Progi1984 May 7, 2025
003f8d0
Migrate `@pages/FO/{classic|hummingbird}/newProducts` from Core
Progi1984 May 9, 2025
fe36986
Migrate `@pages/FO/{classic|hummingbird}/pricesDrop` from Core
Progi1984 May 9, 2025
2eacdfb
Migrate `@pages/FO/{classic|hummingbird}/securePayment` from Core
Progi1984 May 9, 2025
c8c3c36
Migrate `@pages/FO/{classic|hummingbird}/termsAndConditionsOfUse` fro…
Progi1984 May 9, 2025
1489d73
Migrate `@pages/FO/{classic|hummingbird}/myAccount/returnDetails` fro…
Progi1984 May 9, 2025
7545b8b
Migrate `@pages/FO/{classic|hummingbird}/myAccount/gdprPersonalData` …
Progi1984 May 9, 2025
e3f1787
Migrate `@pages/BO/error` from Core
Progi1984 May 9, 2025
805f0e9
`boErrorPage` : Improved selected page
Progi1984 May 9, 2025
0398a83
Migrate `@pages/install` from Core
Progi1984 May 9, 2025
4484beb
`foHummingbirdMyGDPRPersonalDataPage` : Fixed logout
Progi1984 May 9, 2025
d1b8948
Bump @typescript-eslint/eslint-plugin from 8.31.1 to 8.32.0
dependabot[bot] May 12, 2025
895065e
Bump @typescript-eslint/parser from 8.31.1 to 8.32.0
dependabot[bot] May 13, 2025
494a3df
`foHummingbirdMyGDPRPersonalDataPage` : Fixed inheritance
Progi1984 May 13, 2025
13fe364
Bump fast-xml-parser from 5.2.2 to 5.2.3
dependabot[bot] May 12, 2025
1ded013
Bump tsc-alias from 1.8.15 to 1.8.16
dependabot[bot] May 13, 2025
81abac0
Bump @types/node from 22.15.12 to 22.15.17
dependabot[bot] May 13, 2025
08b7538
Bump @s3pweb/keycloak-admin-client-cjs from 26.2.0 to 26.2.3
dependabot[bot] May 14, 2025
dae56ea
Added type ModuleApiInfo
Progi1984 May 15, 2025
5308d9e
Improved Global types
Progi1984 May 15, 2025
403968b
Added Import Data
Progi1984 May 15, 2025
95abde2
Bump @typescript-eslint/eslint-plugin from 8.32.0 to 8.32.1
dependabot[bot] May 19, 2025
304708e
Added `utilsConf.loadEnv` from Core
Progi1984 May 19, 2025
d1c5490
Bump @s3pweb/keycloak-admin-client-cjs from 26.2.3 to 26.2.4
dependabot[bot] May 20, 2025
645167e
Bump semver from 7.7.1 to 7.7.2
dependabot[bot] May 20, 2025
36de5b3
Bump @types/node from 22.15.17 to 22.15.19
dependabot[bot] May 20, 2025
814246b
Bump @faker-js/faker from 9.7.0 to 9.8.0
dependabot[bot] May 21, 2025
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
442 changes: 260 additions & 182 deletions package-lock.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
"@s3pweb/keycloak-admin-client-cjs": "^26.0.0",
"@xmldom/xmldom": "^0.9.5",
"csv-writer": "^1.6.0",
"dotenv": "^16.5.0",
"fast-xml-parser": "^5.0.9",
"gunzip-file": "^0.1.1",
"jpeg-js": "^0.4.4",
Expand Down
2 changes: 2 additions & 0 deletions src/data/demo/countries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ export default {
callPrefix: '1',
zone: 'North America',
active: false,
containsStates: true,
}),
canada: new FakerCountry({
id: 4,
Expand All @@ -56,5 +57,6 @@ export default {
callPrefix: '1',
zone: 'North America',
active: false,
containsStates: true,
}),
};
40 changes: 39 additions & 1 deletion src/data/demo/states.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
import FakerState from '@data/faker/state';
import {fakerFR as faker} from '@faker-js/faker';

export default {
const states = {
alaska: new FakerState({
id: 5,
name: 'Alaska',
isoCode: 'AK',
country: 'United States',
zone: 'North America',
status: true,
}),
california: new FakerState({
id: 8,
name: 'California',
Expand All @@ -25,4 +34,33 @@ export default {
zone: 'Asia',
status: true,
}),
ontario: new FakerState({
id: 89,
name: 'Ontario',
isoCode: 'ON',
country: 'Canada',
zone: 'North America',
status: true,
}),
quebec: new FakerState({
id: 89,
name: 'Quebec',
isoCode: 'QC',
country: 'Canada',
zone: 'North America',
status: true,
}),
};
export default states;

export function getRandomStateNameByCountryName(countryName: string): string|null {
const countryStatesNames = Object.values(states)
.filter((state: FakerState) => state.country === countryName)
.map((state: FakerState) => state.name);

if (countryStatesNames.length) {
return faker.helpers.arrayElement(countryStatesNames);
}

return null;
}
6 changes: 6 additions & 0 deletions src/data/faker/brandAddress.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type BrandAddressCreator from '@data/types/brandAddress';
import dataCountries from '@data/demo/countries';
import type FakerCountry from '@data/faker/country';
import {getRandomStateNameByCountryName} from '@data/demo/states';

import {fakerFR as faker} from '@faker-js/faker';

Expand Down Expand Up @@ -29,6 +30,8 @@ export default class BrandAddressData {

public readonly country: string;

public readonly state: string|null = null;

public readonly homePhone: string;

public readonly mobilePhone: string;
Expand Down Expand Up @@ -67,6 +70,9 @@ export default class BrandAddressData {
/** @type {string} Address country name */
this.country = brandAddressToCreate.country || faker.helpers.arrayElement(countriesNames);

/** @type {string} Address state name */
this.state = brandAddressToCreate.state || getRandomStateNameByCountryName(this.country);

/** @type {string} Home phone number linked to the address */
this.homePhone = brandAddressToCreate.homePhone || faker.phone.number();

Expand Down
7 changes: 7 additions & 0 deletions src/data/faker/supplier.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import dataCountries from '@data/demo/countries';
import type FakerCountry from '@data/faker/country';
import SupplierCreator from '@data/types/supplier';
import {getRandomStateNameByCountryName} from '@data/demo/states';

import {fakerFR as faker} from '@faker-js/faker';

const countriesNames: string[] = Object.values(dataCountries).map((country: FakerCountry) => country.name);
Expand Down Expand Up @@ -32,6 +34,8 @@ export default class FakerSupplier {

public country: string;

public state: string|null = null;

public logo: string;

public metaTitle: string;
Expand Down Expand Up @@ -88,6 +92,9 @@ export default class FakerSupplier {
/** @type {string} Country for the address of the supplier */
this.country = supplierToCreate.country || faker.helpers.arrayElement(countriesNames);

/** @type {string} Address state name */
this.state = supplierToCreate.state || getRandomStateNameByCountryName(this.country);

/** @type {string} Logo name/path of the supplier */
this.logo = supplierToCreate.logo || `${this.name.replace(/[^\w\s]/gi, '')}.png`;

Expand Down
68 changes: 68 additions & 0 deletions src/data/import/addresses.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import dataCountries from '@data/demo/countries';
import dataCustomers from '@data/demo/customers';
import type FakerCountry from '@data/faker/country';
import FakerImport from '@data/faker/import';
import type {ImportAddress} from '@data/types/import';
import {fakerFR as faker} from '@faker-js/faker';

const countriesNames = Object.values(dataCountries).map((country: FakerCountry) => country.name);

const records: ImportAddress[] = [];

function createRecord(): ImportAddress[] {
for (let i: number = 0; i < 10; i++) {
records.push({
id: i + 3,
alias: faker.location.streetAddress().substring(0, 30),
active: faker.number.int({min: 0, max: 1}),
email: dataCustomers.johnDoe.email,
customerID: dataCustomers.johnDoe.id,
manufacturer: '',
supplier: '',
company: faker.company.name(),
lastname: 'test',
firstname: faker.person.firstName(),
address1: faker.location.streetAddress(),
address2: faker.location.secondaryAddress(),
zipCode: faker.location.zipCode('#####'),
city: faker.location.city(),
country: faker.helpers.arrayElement(countriesNames),
state: '',
other: '',
phone: faker.phone.number(),
mobilePhone: faker.phone.number(),
vatNumber: '',
dni: '',
});
}

return records;
}

export default new FakerImport({
entity: 'Addresses',
header: [
{id: 'id', title: 'Address ID'},
{id: 'alias', title: 'Alias*'},
{id: 'active', title: 'Active (0/1)'},
{id: 'email', title: 'Customer e-mail*'},
{id: 'customerID', title: 'Customer ID*'},
{id: 'manufacturer', title: 'Manufacturer'},
{id: 'supplier', title: 'Supplier'},
{id: 'company', title: 'Company'},
{id: 'lastname', title: 'Lastname*'},
{id: 'firstname', title: 'Firstname*'},
{id: 'address1', title: 'Address 1*'},
{id: 'address2', title: 'Address 2'},
{id: 'zipCode', title: 'Zipcode*'},
{id: 'city', title: 'City*'},
{id: 'country', title: 'Country*'},
{id: 'state', title: 'State'},
{id: 'other', title: 'Other'},
{id: 'phone', title: 'Phone'},
{id: 'mobilePhone', title: 'Mobile Phone'},
{id: 'vatNumber', title: 'VAT number'},
{id: 'dni', title: 'DNI'},
],
records: createRecord(),
});
40 changes: 40 additions & 0 deletions src/data/import/brands.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import FakerImport from '@data/faker/import';
import type {ImportBrand} from '@data/types/import';
import {faker} from '@faker-js/faker';

const records: ImportBrand[] = [];

function createRecord(): ImportBrand[] {
for (let i: number = 0; i < 10; i++) {
const name = `todelete ${faker.company.name()}`;
records.push({
id: i + 2,
active: faker.number.int({min: 0, max: 1}),
name,
description: faker.lorem.sentence(),
shortDescription: faker.lorem.sentence(),
metaTitle: name,
metaKeywords: [],
metaDescription: faker.lorem.sentence(),
imageURL: '',
});
}

return records;
}

export default new FakerImport({
entity: 'Brands',
header: [
{id: 'id', title: 'ID'},
{id: 'active', title: 'Active (0/1)'},
{id: 'name', title: 'Name *'},
{id: 'description', title: 'Description'},
{id: 'shortDescription', title: 'Short description'},
{id: 'metaTitle', title: 'Meta title'},
{id: 'metaKeywords', title: 'Meta keywords'},
{id: 'metaDescription', title: 'Meta description'},
{id: 'imageURL', title: 'Image URL'},
],
records: createRecord(),
});
106 changes: 106 additions & 0 deletions src/data/import/categories.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
import FakerImport from '@data/faker/import';
import {type ImportCategory} from '@data/types/import';

const records: ImportCategory[] = [
{
id: 10,
active: 1,
name: 'category_1',
parent_category: 'Home',
root_category: '0',
description: 'Description for the category 1',
},
{
id: 11,
active: 1,
name: 'category_2',
parent_category: 'Home',
root_category: '0',
description: 'Description for the category 2',
},
{
id: 12,
active: 1,
name: 'category_3',
parent_category: 'Home',
root_category: '0',
description: 'Description for the category 3',
},
{
id: 13,
active: 1,
name: 'category_4',
parent_category: 'Home',
root_category: '0',
description: 'Description for the category 4',
},
{
id: 14,
active: 1,
name: 'category_5',
parent_category: 'Home',
root_category: '0',
description: 'Description for the category 5',
},
{
id: 15,
active: 1,
name: 'category_6',
parent_category: 'Home',
root_category: '0',
description: 'Description for the category 6',
},
{
id: 16,
active: 1,
name: 'category_7',
parent_category: 'Home',
root_category: '0',
description: 'Description for the category 7',
},
{
id: 17,
active: 1,
name: 'category_8',
parent_category: 'Home',
root_category: '0',
description: 'Description for the category 8',
},
{
id: 18,
active: 1,
name: 'category_9',
parent_category: 'Home',
root_category: '0',
description: 'Description for the category 9',
},
{
id: 19,
active: 1,
name: 'category_10',
parent_category: 'Home',
root_category: '0',
description: 'Description for the category 10',
},
{
id: 20,
active: 1,
name: 'category_11',
parent_category: 'Home',
root_category: '0',
description: 'Description for the category 11',
},
];

export default new FakerImport({
entity: 'Categories',
header: [
{id: 'id', title: 'Category ID'},
{id: 'active', title: 'Active (0/1)'},
{id: 'name', title: 'Name *'},
{id: 'parent_category', title: 'Parent category'},
{id: 'root_category', title: 'Root category (0/1)'},
{id: 'description', title: 'Description'},
],
records,
});
Loading