Skip to content

Commit b00f065

Browse files
committed
feat: pwa pd support lint
1 parent d9dc1eb commit b00f065

File tree

7 files changed

+80
-6
lines changed

7 files changed

+80
-6
lines changed

packages/commerce-sdk-react/jest.config.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,19 @@ module.exports = {
1111
...base,
1212
setupFilesAfterEnv: ['./setup-jest.js'],
1313
transformIgnorePatterns: [],
14+
moduleNameMapper: {
15+
...base.moduleNameMapper,
16+
'^@salesforce/storefront-next-runtime/design/react/core$':
17+
'@salesforce/storefront-next-runtime/dist/design-react-core.js',
18+
'^@salesforce/storefront-next-runtime/design/react$':
19+
'@salesforce/storefront-next-runtime/dist/design-react.js',
20+
'^@salesforce/storefront-next-runtime/design$':
21+
'@salesforce/storefront-next-runtime/dist/design.js',
22+
'^@salesforce/storefront-next-runtime/design/mode$':
23+
'@salesforce/storefront-next-runtime/dist/design-mode.js',
24+
'^@salesforce/storefront-next-runtime/scapi$':
25+
'@salesforce/storefront-next-runtime/dist/scapi.js'
26+
},
1427
coverageThreshold: {
1528
global: {
1629
branches: 0,

packages/commerce-sdk-react/src/components/ShopperExperience/Region/region-wrapper.test.tsx

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,27 @@
77
import React from 'react'
88
import {render, screen} from '@testing-library/react'
99
import {RegionWrapper, RegionRendererProps} from './region-wrapper'
10-
import {usePageDesignerMode} from '@salesforce/storefront-next-runtime/design/react/core'
1110

12-
const mockUsePageDesignerMode = usePageDesignerMode as jest.Mock
11+
const mockUsePageDesignerMode = jest.fn(() => ({isDesignMode: false}))
12+
13+
jest.mock('@salesforce/storefront-next-runtime/design/react/core', () => ({
14+
usePageDesignerMode: () => mockUsePageDesignerMode()
15+
}))
16+
17+
jest.mock('@salesforce/storefront-next-runtime/design/react', () => {
18+
const React = require('react')
19+
return {
20+
createReactRegionDesignDecorator: (Component: React.ComponentType) => {
21+
return function DecoratedComponent(props: Record<string, unknown>) {
22+
return React.createElement(
23+
'div',
24+
{'data-testid': 'decorated-region'},
25+
React.createElement(Component, props)
26+
)
27+
}
28+
}
29+
}
30+
})
1331

1432
describe('RegionWrapper', () => {
1533
const mockRegion = {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* Copyright (c) 2026, Salesforce, Inc.
3+
* All rights reserved.
4+
* SPDX-License-Identifier: BSD-3-Clause
5+
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6+
*/
7+
declare module '*.css' {
8+
const content: string
9+
export default content
10+
}
11+
12+
declare module '@salesforce/storefront-next-runtime/design/styles.css'

packages/commerce-sdk-react/tsconfig.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,14 @@
2727
"module": "esnext" /* Specify what module code is generated. */,
2828
// "rootDir": "./", /* Specify the root folder within your source files. */
2929
"moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */,
30-
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
31-
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
30+
"baseUrl": "./" /* Specify the base directory to resolve non-relative module names. */,
31+
"paths": {
32+
"@salesforce/storefront-next-runtime/design/react/core": ["node_modules/@salesforce/storefront-next-runtime/dist/design-react-core.d.ts"],
33+
"@salesforce/storefront-next-runtime/design/react": ["node_modules/@salesforce/storefront-next-runtime/dist/design-react.d.ts"],
34+
"@salesforce/storefront-next-runtime/design": ["node_modules/@salesforce/storefront-next-runtime/dist/design.d.ts"],
35+
"@salesforce/storefront-next-runtime/design/mode": ["node_modules/@salesforce/storefront-next-runtime/dist/design-mode.d.ts"],
36+
"@salesforce/storefront-next-runtime/scapi": ["node_modules/@salesforce/storefront-next-runtime/dist/scapi.d.ts"]
37+
} /* Specify a set of entries that re-map imports to additional lookup locations. */,
3238
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
3339
// "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */
3440
// "types": [], /* Specify type package names to be included without being referenced in a source file. */

packages/pwa-kit-dev/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@
7171
"compression": "1.7.4",
7272
"copy-webpack-plugin": "^9.1.0",
7373
"cross-env": "^5.2.1",
74+
"css-loader": "^6.7.3",
75+
"style-loader": "^3.3.1",
7476
"eslint": "^8.37.0",
7577
"eslint-config-prettier": "8.8.0",
7678
"eslint-plugin-jest": "^27.2.1",
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/*
2+
* Copyright (c) 2025, salesforce.com, inc.
3+
* All rights reserved.
4+
* SPDX-License-Identifier: BSD-3-Clause
5+
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6+
*/
7+
8+
/**
9+
* Empty mock for CSS and other non-JS imports in tests
10+
*/
11+
module.exports = {}

packages/template-retail-react-app/jest.config.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,21 @@ module.exports = {
2020
'^is-what$': '<rootDir>/node_modules/is-what/dist/cjs/index.cjs',
2121
'^copy-anything$': '<rootDir>/node_modules/copy-anything/dist/cjs/index.cjs',
2222
'^@salesforce/cc-datacloud-typescript$':
23-
'<rootDir>/node_modules/@salesforce/cc-datacloud-typescript/dist/index.js'
23+
'<rootDir>/node_modules/@salesforce/cc-datacloud-typescript/dist/index.js',
24+
'^@salesforce/storefront-next-runtime/design/react/core$':
25+
'@salesforce/storefront-next-runtime/dist/design-react-core.js',
26+
'^@salesforce/storefront-next-runtime/design/react$':
27+
'@salesforce/storefront-next-runtime/dist/design-react.js',
28+
'^@salesforce/storefront-next-runtime/design$':
29+
'@salesforce/storefront-next-runtime/dist/design.js',
30+
'^@salesforce/storefront-next-runtime/design/mode$':
31+
'@salesforce/storefront-next-runtime/dist/design-mode.js',
32+
'^@salesforce/storefront-next-runtime/scapi$':
33+
'@salesforce/storefront-next-runtime/dist/scapi.js',
34+
'^@salesforce/storefront-next-runtime/design/styles\\.css$':
35+
'<rootDir>/app/mocks/empty-mock.js'
2436
},
25-
transformIgnorePatterns: ['/node_modules/(?!@salesforce/cc-datacloud-typescript)'],
37+
transformIgnorePatterns: ['/node_modules/(?!@salesforce/cc-datacloud-typescript|@salesforce/storefront-next-runtime)'],
2638
setupFilesAfterEnv: [path.join(__dirname, 'jest-setup.js')],
2739
collectCoverageFrom: [
2840
'app/**/*.{js,jsx}',

0 commit comments

Comments
 (0)