Skip to content

Commit c1bdec5

Browse files
committed
[web] Use "?component" resourceQuery instead "?url"
This helps to simplify the Jest configuration and to reduce the mocking too. It's somehow related to the fact that Jest does not fully support resource queries, see jestjs/jest#6282
1 parent 6a7635a commit c1bdec5

File tree

5 files changed

+28
-30
lines changed

5 files changed

+28
-30
lines changed

web/__mocks__/svg_url.js

-1
This file was deleted.

web/jest.config.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,7 @@ module.exports = {
8989
// A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
9090
// moduleNameMapper: {},
9191
moduleNameMapper: {
92-
"\\.svg$": "<rootDir>/__mocks__/svg.js",
93-
"\\.svg\\?url$": "<rootDir>/__mocks__/svg_url.js",
92+
"\\.svg\\?component$": "<rootDir>/__mocks__/svg.js",
9493
...pathsToModuleNameMapper(compilerOptions.paths, { prefix: "<rootDir>/" }),
9594
"\\.(css|scss)$": "identity-obj-proxy",
9695
},

web/src/components/layout/Icon.jsx

+24-24
Original file line numberDiff line numberDiff line change
@@ -23,30 +23,30 @@ import React from 'react';
2323

2424
// NOTE: "~icons" is an alias to use a shorter path to real icons location.
2525
// Check the tsconfig.json file to see its value.
26-
import Inventory from "~icons/inventory_2.svg";
27-
import Translate from "~icons/translate.svg";
28-
import SettingsEthernet from "~icons/settings_ethernet.svg";
29-
import EditSquare from "~icons/edit_square.svg";
30-
import Edit from "~icons/edit.svg";
31-
import HardDrive from "~icons/hard_drive.svg";
32-
import ManageAccounts from "~icons/manage_accounts.svg";
33-
import HomeStorage from "~icons/home_storage.svg";
34-
import Problem from "~icons/problem.svg";
35-
import Error from "~icons/error.svg";
36-
import CheckCircle from "~icons/check_circle.svg";
37-
import TaskAlt from "~icons/task_alt.svg";
38-
import Downloading from "~icons/downloading.svg";
39-
import MoreVert from "~icons/more_vert.svg";
40-
import Wifi from "~icons/wifi.svg";
41-
import Lan from "~icons/lan.svg";
42-
import Lock from "~icons/lock.svg";
43-
import SignalCellularAlt from "~icons/signal_cellular_alt.svg";
44-
import SettingsFill from "~icons/settings-fill.svg";
45-
import SettingsApplications from "~icons/settings_applications.svg";
46-
import Info from "~icons/info.svg";
47-
import Delete from "~icons/delete.svg";
48-
import Warning from "~icons/warning.svg";
49-
import Loading from "./three-dots-loader-icon.svg";
26+
import Inventory from "~icons/inventory_2.svg?component";
27+
import Translate from "~icons/translate.svg?component";
28+
import SettingsEthernet from "~icons/settings_ethernet.svg?component";
29+
import EditSquare from "~icons/edit_square.svg?component";
30+
import Edit from "~icons/edit.svg?component";
31+
import HardDrive from "~icons/hard_drive.svg?component";
32+
import ManageAccounts from "~icons/manage_accounts.svg?component";
33+
import HomeStorage from "~icons/home_storage.svg?component";
34+
import Problem from "~icons/problem.svg?component";
35+
import Error from "~icons/error.svg?component";
36+
import CheckCircle from "~icons/check_circle.svg?component";
37+
import TaskAlt from "~icons/task_alt.svg?component";
38+
import Downloading from "~icons/downloading.svg?component";
39+
import MoreVert from "~icons/more_vert.svg?component";
40+
import Wifi from "~icons/wifi.svg?component";
41+
import Lan from "~icons/lan.svg?component";
42+
import Lock from "~icons/lock.svg?component";
43+
import SignalCellularAlt from "~icons/signal_cellular_alt.svg?component";
44+
import SettingsFill from "~icons/settings-fill.svg?component";
45+
import SettingsApplications from "~icons/settings_applications.svg?component";
46+
import Info from "~icons/info.svg?component";
47+
import Delete from "~icons/delete.svg?component";
48+
import Warning from "~icons/warning.svg?component";
49+
import Loading from "./three-dots-loader-icon.svg?component";
5050

5151
const icons = {
5252
check_circle: CheckCircle,

web/src/components/layout/Layout.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import React from "react";
2323

2424
import "./layout.scss";
25-
import logoUrl from "@assets/suse-horizontal-logo.svg?url";
25+
import logoUrl from "@assets/suse-horizontal-logo.svg";
2626
import { createTeleporter } from "react-teleporter";
2727

2828
const PageTitle = createTeleporter();

web/webpack.config.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,12 @@ module.exports = {
132132
{
133133
test: /\.svg$/i,
134134
type: 'asset',
135-
resourceQuery: /url/, // *.svg?url
135+
resourceQuery: { not: [/component/] } // exclude file import includes ""?component"
136136
},
137137
{
138138
test: /\.svg$/i,
139139
issuer: /\.jsx?$/,
140-
resourceQuery: { not: [/url/] }, // exclude react component if *.svg?url
140+
resourceQuery: /component/, // *.svg?component
141141
use: ['@svgr/webpack']
142142
}
143143
]

0 commit comments

Comments
 (0)