Skip to content

Commit 09bac79

Browse files
committed
test: update the test case
1 parent 638a47e commit 09bac79

File tree

20 files changed

+307
-164
lines changed

20 files changed

+307
-164
lines changed

packages/core/src/css/cssConfig.ts

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,11 @@ export async function cssExternalHandler(
9797
let resolvedRequest = request;
9898

9999
if (styleRedirectPath) {
100-
const redirectedPath = await redirectPath(request);
101-
if (redirectedPath === undefined) {
102-
return callback(undefined, request);
100+
const resolved = await redirectPath(resolvedRequest);
101+
console.log(resolvedRequest, resolved, 2222)
102+
if (resolved) {
103+
resolvedRequest = resolved;
103104
}
104-
resolvedRequest = redirectedPath;
105105
}
106106

107107
if (!isCssFile(resolvedRequest)) {
@@ -110,11 +110,7 @@ export async function cssExternalHandler(
110110

111111
// 1. css modules: import './CounterButton.module.scss' -> import './CounterButton.module.mjs'
112112
// 2. css global: import './CounterButton.scss' -> import './CounterButton.css'
113-
if (resolvedRequest[0] === '.') {
114-
// preserve import './CounterButton.module.scss'
115-
if (!styleRedirectExtension) {
116-
return callback(undefined, resolvedRequest);
117-
}
113+
if (styleRedirectExtension) {
118114
const isCssModulesRequest = isCssModulesFile(resolvedRequest, auto);
119115
if (isCssModulesRequest) {
120116
return callback(
@@ -125,7 +121,7 @@ export async function cssExternalHandler(
125121
return callback(undefined, resolvedRequest.replace(/\.[^.]+$/, '.css'));
126122
}
127123

128-
return callback(undefined, request);
124+
return callback(undefined, resolvedRequest);
129125
}
130126

131127
const PLUGIN_NAME = 'rsbuild:lib-css';

tests/integration/redirect/style-extension/package.json

Lines changed: 0 additions & 6 deletions
This file was deleted.

tests/integration/redirect/style-extension/rslib.config.ts

Lines changed: 0 additions & 32 deletions
This file was deleted.

tests/integration/redirect/style-extension/src/less/index.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

tests/integration/redirect/style-extension/src/module/index.ts

Lines changed: 0 additions & 4 deletions
This file was deleted.

tests/integration/redirect/style-path/rslib.config.ts

Lines changed: 0 additions & 21 deletions
This file was deleted.

tests/integration/redirect/style-path/src/css/index.css

Lines changed: 0 additions & 3 deletions
This file was deleted.

tests/integration/redirect/style-path/src/css/index.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

tests/integration/redirect/style-path/src/module/index.module.css

Lines changed: 0 additions & 3 deletions
This file was deleted.

tests/integration/redirect/style-path/src/module/index.ts

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
import path from 'node:path';
2+
import { buildAndGetResults, queryContent } from 'test-helper';
3+
import { beforeAll, expect, test } from 'vitest';
4+
5+
let contents: Awaited<ReturnType<typeof buildAndGetResults>>['contents'];
6+
7+
beforeAll(async () => {
8+
const fixturePath = path.resolve(__dirname, './style');
9+
contents = (await buildAndGetResults({ fixturePath })).contents;
10+
});
11+
12+
test('0. default', async () => {
13+
const { content: cssIndexJs } = queryContent(
14+
contents.esm0!,
15+
/esm\/less\/index\.js/,
16+
);
17+
const { content: cssIndexCjs } = queryContent(
18+
contents.cjs0!,
19+
/cjs\/less\/index\.cjs/,
20+
);
21+
expect(cssIndexJs).toMatchInlineSnapshot(`
22+
"import "./index.css";
23+
"
24+
`);
25+
expect(cssIndexCjs).toContain('require("./index.css");');
26+
27+
const { content: cssModuleIndexJs } = queryContent(
28+
contents.esm0!,
29+
/esm\/module\/index\.js/,
30+
);
31+
const { content: cssModuleIndexCjs } = queryContent(
32+
contents.cjs0!,
33+
/cjs\/module\/index\.cjs/,
34+
);
35+
expect(cssModuleIndexJs).toMatchInlineSnapshot(`
36+
"import * as __WEBPACK_EXTERNAL_MODULE__index_module_js__ from "./index.module.js";
37+
__WEBPACK_EXTERNAL_MODULE__index_module_js__["default"];
38+
"
39+
`);
40+
expect(cssModuleIndexCjs).toContain('const external_index_module_cjs_namespaceObject = require("./index.module.cjs");');
41+
});
42+
43+
test('1. style.path: false', () => {
44+
const { content: cssIndexJs } = queryContent(
45+
contents.esm1!,
46+
/esm\/less\/index\.js/,
47+
);
48+
const { content: cssIndexCjs } = queryContent(
49+
contents.cjs1!,
50+
/cjs\/less\/index\.cjs/,
51+
);
52+
expect(cssIndexJs).toMatchInlineSnapshot(`
53+
"import "@/less/index.css";
54+
"
55+
`);
56+
expect(cssIndexCjs).toContain('require("@/less/index.css");');
57+
58+
const { content: cssModuleIndexJs } = queryContent(
59+
contents.esm1!,
60+
/esm\/module\/index\.js/,
61+
);
62+
const { content: cssModuleIndexCjs } = queryContent(
63+
contents.cjs1!,
64+
/cjs\/module\/index\.cjs/,
65+
);
66+
expect(cssModuleIndexJs).toMatchInlineSnapshot(`
67+
"import * as __WEBPACK_EXTERNAL_MODULE__module_index_module_js__ from "@/module/index.module.js";
68+
__WEBPACK_EXTERNAL_MODULE__module_index_module_js__["default"];
69+
"
70+
`);
71+
expect(cssModuleIndexCjs).toContain('const index_module_cjs_namespaceObject = require("@/module/index.module.cjs");');
72+
});
73+
74+
test('2. style.extension: false', async () => {
75+
const { content: cssIndexJs } = queryContent(
76+
contents.esm2!,
77+
/esm\/less\/index\.js/,
78+
);
79+
const { content: cssIndexCjs } = queryContent(
80+
contents.cjs2!,
81+
/cjs\/less\/index\.cjs/,
82+
);
83+
expect(cssIndexJs).toMatchInlineSnapshot(`
84+
"import "./index.less";
85+
"
86+
`);
87+
expect(cssIndexCjs).toContain('require("./index.less");');
88+
89+
const { content: cssModuleIndexJs } = queryContent(
90+
contents.esm2!,
91+
/esm\/module\/index\.js/,
92+
);
93+
const { content: cssModuleIndexCjs } = queryContent(
94+
contents.cjs2!,
95+
/cjs\/module\/index\.cjs/,
96+
);
97+
expect(cssModuleIndexJs).toMatchInlineSnapshot(`
98+
"import * as __WEBPACK_EXTERNAL_MODULE__index_module_less__ from "./index.module.less";
99+
__WEBPACK_EXTERNAL_MODULE__index_module_less__["default"];
100+
"
101+
`);
102+
expect(cssModuleIndexCjs).toContain('const external_index_module_less_namespaceObject = require("./index.module.less");');
103+
});
104+
105+
test('3. style.path: false, style.extension: false', async () => {
106+
const { content: cssIndexJs } = queryContent(
107+
contents.esm3!,
108+
/esm\/less\/index\.js/,
109+
);
110+
const { content: cssIndexCjs } = queryContent(
111+
contents.cjs3!,
112+
/cjs\/less\/index\.cjs/,
113+
);
114+
expect(cssIndexJs).toMatchInlineSnapshot(`
115+
"import "@/less/index.less";
116+
"
117+
`);
118+
expect(cssIndexCjs).toContain('require("@/less/index.css");');
119+
120+
const { content: cssModuleIndexJs } = queryContent(
121+
contents.esm3!,
122+
/esm\/module\/index\.js/,
123+
);
124+
const { content: cssModuleIndexCjs } = queryContent(
125+
contents.cjs3!,
126+
/cjs\/module\/index\.cjs/,
127+
);
128+
expect(cssModuleIndexJs).toMatchInlineSnapshot(`
129+
"import * as __WEBPACK_EXTERNAL_MODULE__module_index_module_less__ from "@/module/index.module.less";
130+
__WEBPACK_EXTERNAL_MODULE__module_index_module_less__["default"];
131+
"
132+
`);
133+
expect(cssModuleIndexCjs).toContain('const index_module_cjs_namespaceObject = require("@/module/index.module.cjs");');
134+
135+
});

0 commit comments

Comments
 (0)