Skip to content

Commit da7a791

Browse files
authored
add bun support as a package manager (yeoman#532)
1 parent 5bf6f67 commit da7a791

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/package-manager.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ Changes to package.json were detected.`);
8989
adapter.log('Error detecting the package manager. Falling back to npm.');
9090
}
9191

92-
if (!['npm', 'yarn', 'pnpm'].includes(packageManagerName)) {
92+
if (!['npm', 'yarn', 'pnpm', 'bun'].includes(packageManagerName)) {
9393
adapter.log(`${packageManagerName} is not a supported package manager. Run it by yourself.`);
9494
return false;
9595
}

test/package-manager.js

+18
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,24 @@ No change to package.json was detected. No package manager install will be execu
143143
});
144144
});
145145

146+
describe('with bun', () => {
147+
beforeEach(async () => {
148+
whichPackageManager.mockResolvedValue('bun');
149+
await packageManagerInstallTask({ adapter, memFs, packageJsonLocation });
150+
});
151+
152+
it('should log', async () => {
153+
expect(adapter.log).toBeCalledTimes(2);
154+
expect(adapter.log).toHaveBeenNthCalledWith(1, changesToPackageJson);
155+
expect(adapter.log).toHaveBeenNthCalledWith(2, runningPackageManager('bun'));
156+
});
157+
158+
it('should execute bun', () => {
159+
expect(execa).toBeCalled();
160+
expect(execa).toBeCalledWith('bun', ['install'], expect.any(Object));
161+
});
162+
});
163+
146164
describe('with an unsupported package manager', () => {
147165
beforeEach(async () => {
148166
await packageManagerInstallTask({ adapter, memFs, packageJsonLocation, nodePackageManager: 'foo' });

0 commit comments

Comments
 (0)