Skip to content

Commit 20ba653

Browse files
committed
test(project): Add basic library build test for BuildServer
1 parent a6ea322 commit 20ba653

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

packages/project/test/lib/build/BuildServer.integration.js

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,88 @@ test.serial("Serve application.a, request library resource", async (t) => {
196196
);
197197
});
198198

199+
test.serial.skip("Serve library", async (t) => {
200+
const fixtureTester = t.context.fixtureTester = new FixtureTester(t, "library.d");
201+
202+
// #1 request with empty cache
203+
await fixtureTester.serveProject({
204+
config: {
205+
excludedTasks: ["minify"],
206+
}
207+
});
208+
await fixtureTester.requestResource({
209+
resource: "/resources/library/d/some.js",
210+
assertions: {
211+
projects: {
212+
"library.d": {}
213+
}
214+
}
215+
});
216+
217+
// #2 request with cache
218+
await fixtureTester.requestResource({
219+
resource: "/resources/library/d/some.js",
220+
assertions: {
221+
projects: {}
222+
}
223+
});
224+
225+
// Change a source file in library.d
226+
const changedFilePath = `${fixtureTester.fixturePath}/main/src/library/d/some.js`;
227+
const originalContent = await fs.readFile(changedFilePath, {encoding: "utf8"});
228+
await fs.writeFile(
229+
changedFilePath,
230+
originalContent.replace(
231+
` */`,
232+
` */\n// Test 1`
233+
)
234+
);
235+
236+
await setTimeout(500); // Wait for the file watcher to detect and propagate the change
237+
238+
// #3 request with cache and changes
239+
const resourceContent1 = await fixtureTester.requestResource({
240+
resource: "/resources/library/d/some.js",
241+
assertions: {
242+
projects: {
243+
"library.d": {
244+
skippedTasks: [
245+
"buildThemes",
246+
"enhanceManifest",
247+
"escapeNonAsciiCharacters",
248+
"replaceBuildtime",
249+
]
250+
}
251+
}
252+
}
253+
});
254+
255+
// Check whether the changed file is served
256+
const servedFileContent1 = await resourceContent1.getString();
257+
t.true(
258+
servedFileContent1.includes(`Test 1`),
259+
"Resource contains changed file content"
260+
);
261+
262+
// Restore original file content
263+
264+
await fs.writeFile(changedFilePath, originalContent);
265+
266+
// #4 request with cache (no changes)
267+
const resourceContent2 = await fixtureTester.requestResource({
268+
resource: "/resources/library/d/some.js",
269+
assertions: {
270+
projects: {}
271+
}
272+
});
273+
274+
const servedFileContent2 = await resourceContent2.getString();
275+
t.false(
276+
servedFileContent2.includes(`Test 1`),
277+
"Resource does not contain changed file content"
278+
);
279+
});
280+
199281
test.serial("Serve application.a, request application resource AND library resource", async (t) => {
200282
const fixtureTester = t.context.fixtureTester = new FixtureTester(t, "application.a");
201283

0 commit comments

Comments
 (0)