Compare commits

...

6 Commits

Author SHA1 Message Date
Claude Bot
2b8e354f3d Add regression test for uppercase directory names in workspaces
Test verifies that `bun --filter` works correctly with workspace
directories containing uppercase letters on case-sensitive filesystems.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 05:11:19 +00:00
daku10
e3bd882d9d fix(glob): use original entry name 2025-09-29 18:12:51 +09:00
Jarred Sumner
d9fdb67d70 Deflake bun-server.test.ts 2025-09-28 23:58:21 -07:00
Jarred Sumner
a09dc2f450 Update no-validate-leaksan.txt 2025-09-28 23:46:10 -07:00
Meghan Denny
39e48ed244 Bump 2025-09-28 11:28:14 -07:00
Michael H
db2f768bd9 vscode: remove old test runner codelens stuff (#23003)
### What does this PR do?

fix #23001 by removing references to old codelens from before the native
integration which should have its own (better and) native way of
starting

### How did you verify your code works?
2025-09-28 07:45:32 -07:00
9 changed files with 79 additions and 31 deletions

View File

@@ -45,3 +45,8 @@ jobs:
env:
VSCE_PAT: ${{ secrets.VSCODE_EXTENSION }}
working-directory: packages/bun-vscode/extension
- uses: actions/upload-artifact@v4
with:
name: bun-vscode-${{ github.event.inputs.version }}.vsix
path: packages/bun-vscode/extension/bun-vscode-${{ github.event.inputs.version }}.vsix

2
LATEST
View File

@@ -1 +1 @@
1.2.22
1.2.23

View File

@@ -1,7 +1,7 @@
{
"private": true,
"name": "bun",
"version": "1.2.23",
"version": "1.2.24",
"workspaces": [
"./packages/bun-types",
"./packages/@types/bun"

View File

@@ -22,7 +22,7 @@ At its core is the _Bun runtime_, a fast JavaScript runtime designed as a drop-i
## Features:
- Live in-editor error messages (gif below)
- Test runner codelens
- Vscode test runner support
- Debugger support
- Run scripts from package.json
- Visual lockfile viewer for old binary lockfiles (`bun.lockb`)

View File

@@ -1,6 +1,6 @@
{
"name": "bun-vscode",
"version": "0.0.29",
"version": "0.0.31",
"author": "oven",
"repository": {
"type": "git",
@@ -116,20 +116,6 @@
"category": "Bun",
"enablement": "!inDebugMode && resourceLangId =~ /^(javascript|typescript|javascriptreact|typescriptreact)$/ && !isInDiffEditor && resourceScheme == 'untitled'",
"icon": "$(play-circle)"
},
{
"command": "extension.bun.runTest",
"title": "Run all tests",
"shortTitle": "Run Test",
"category": "Bun",
"icon": "$(play)"
},
{
"command": "extension.bun.watchTest",
"title": "Run all tests in watch mode",
"shortTitle": "Run Test Watch",
"category": "Bun",
"icon": "$(sync)"
}
],
"menus": {

View File

@@ -211,7 +211,7 @@ pub const DirEntryAccessor = struct {
pub inline fn next(self: *DirIter) Maybe(?IterResult) {
if (self.value) |*value| {
const nextval = value.next() orelse return .{ .result = null };
const name = nextval.key_ptr.*;
const name = nextval.value_ptr.*.base();
const kind = nextval.value_ptr.*.kind(&FS.instance.fs, true);
const fskind = switch (kind) {
.file => std.fs.File.Kind.file,

View File

@@ -184,7 +184,6 @@ describe.concurrent("Server", () => {
test("abort signal on server", async () => {
{
let abortPromise = Promise.withResolvers();
let responseAwaited = Promise.withResolvers();
let fetchAborted = false;
const abortController = new AbortController();
using server = Bun.serve({
@@ -193,8 +192,7 @@ describe.concurrent("Server", () => {
abortPromise.resolve();
});
abortController.abort();
await Bun.sleep(15);
responseAwaited.resolve();
await abortPromise.promise;
return new Response("Hello");
},
port: 0,
@@ -210,7 +208,7 @@ describe.concurrent("Server", () => {
fetchAborted = true;
}
// wait for the server to process the abort signal, fetch may throw before the server processes the signal
await Promise.all([abortPromise.promise, responseAwaited.promise]);
await abortPromise.promise;
expect(fetchAborted).toBe(true);
}
});

View File

@@ -71,14 +71,6 @@ test/js/node/test/parallel/test-fs-readfile-eof.js
test/js/node/test/parallel/test-child-process-promisified.js
test/js/node/test/parallel/test-child-process-exec-encoding.js
test/js/node/test/parallel/test-child-process-execfile.js
test/bake/dev-and-prod.test.ts
test/bake/dev/bundle.test.ts
test/bake/dev/css.test.ts
test/bake/dev/esm.test.ts
test/bake/dev/hot.test.ts
test/bake/dev/react-spa.test.ts
test/bake/dev/sourcemap.test.ts
test/bake/dev/ssg-pages-router.test.ts
test/bundler/bundler_compile.test.ts
test/bundler/bundler_plugin.test.ts
test/bundler/transpiler/bun-pragma.test.ts
@@ -403,3 +395,14 @@ test/js/third_party/resvg/bbox.test.js
test/regression/issue/10139.test.ts
test/js/bun/udp/udp_socket.test.ts
test/cli/init/init.test.ts
# Watcher Thread
test/bake/dev-and-prod.test.ts
test/bake/dev/bundle.test.ts
test/bake/dev/css.test.ts
test/bake/dev/esm.test.ts
test/bake/dev/hot.test.ts
test/bake/dev/react-spa.test.ts
test/bake/dev/sourcemap.test.ts
test/bake/dev/ssg-pages-router.test.ts
test/bake/dev/deinitialization.test.ts

View File

@@ -0,0 +1,56 @@
import { spawnSync } from "bun";
import { test, expect } from "bun:test";
import { bunEnv, bunExe, tempDirWithFiles } from "harness";
test("bun --filter works with uppercase directory names on case-sensitive filesystems", () => {
const dir = tempDirWithFiles("issue-11295", {
packages: {
"Pkg-a": {
"package.json": JSON.stringify({
name: "pkg-a",
scripts: {
test: "echo 'pkg-a test'",
},
}),
},
"Pkg-B": {
"package.json": JSON.stringify({
name: "pkg-b",
scripts: {
test: "echo 'pkg-b test'",
},
}),
},
lowercase: {
"package.json": JSON.stringify({
name: "lowercase",
scripts: {
test: "echo 'lowercase test'",
},
}),
},
},
"package.json": JSON.stringify({
name: "root",
workspaces: ["packages/*"],
}),
});
const { exitCode, stdout, stderr } = spawnSync({
cwd: dir,
cmd: [bunExe(), "run", "--filter", "./packages/*", "test"],
env: bunEnv,
stdout: "pipe",
stderr: "pipe",
});
const stderrText = stderr.toString();
const stdoutText = stdout.toString();
expect(stderrText).not.toContain("ENOENT");
expect(exitCode).toBe(0);
expect(stdoutText).toContain("pkg-a test");
expect(stdoutText).toContain("pkg-b test");
expect(stdoutText).toContain("lowercase test");
});