Files
bun.sh/test/cli/install/migration/migrate.test.ts
dave caruso 1bf28e0d77 feat(install): automatically migrate package-lock.json to bun.lockb (#6352)
* work so far

* stuff

* a

* basics work

* stuff

* yoo

* build lockfile

* correct

* f

* a

* install fixture havent tested

* i made it worse

* lol

* be more reasonable

* make the test easier to pass because bun install doesn't handle obscure lockfile edge cases :/

* a

* works now

* ok

* a

* a

* cool

* nah

* fix stuff

* l

* a

* idfk

* LAME

* prettier errors

* does this fix tests?

* Add more safety checks to Integrity

* Add another check

* More careful lifetime handling

* Fix linux debugger issue

* a

* tmp dir and snapshot test

---------

Co-authored-by: Jarred SUmner <jarred@jarredsumner.com>
2023-10-11 02:27:07 -07:00

55 lines
1.9 KiB
TypeScript

import fs from "fs";
import { test, expect } from "bun:test";
import { bunEnv, bunExe } from "harness";
import { join } from "path";
import { mkdtempSync } from "js/node/fs/export-star-from";
import { tmpdir } from "os";
test("migrate from npm during `bun add`", async () => {
const testDir = mkdtempSync(join(tmpdir(), "migrate-"));
fs.writeFileSync(
join(testDir, "package.json"),
JSON.stringify({
name: "test3",
dependencies: {
"svelte": "*",
},
}),
);
fs.cpSync(join(import.meta.dir, "add-while-migrate-fixture.json"), join(testDir, "package-lock.json"));
Bun.spawnSync([bunExe(), "add", "lodash@4.17.21"], {
env: bunEnv,
cwd: testDir,
});
expect(fs.existsSync(join(testDir, "node_modules/lodash"))).toBeTrue();
const svelte_version = JSON.parse(fs.readFileSync(join(testDir, "node_modules/svelte/package.json"), "utf8")).version;
expect(svelte_version).toBe("4.0.0");
const lodash_version = JSON.parse(fs.readFileSync(join(testDir, "node_modules/lodash/package.json"), "utf8")).version;
expect(lodash_version).toBe("4.17.21");
});
// Currently this upgrades svelte :(
test.todo("migrate workspace from npm during `bun add`", async () => {
const testDir = join(tmpdir(), "migrate-" + Math.random().toString(36).slice(2));
fs.cpSync(join(import.meta.dir, "add-while-migrate-workspace"), testDir, { recursive: true });
Bun.spawnSync([bunExe(), "add", "lodash@4.17.21"], {
env: bunEnv,
cwd: join(testDir, "packages", "a"),
});
expect(fs.existsSync(join(testDir, "node_modules/lodash"))).toBeTrue();
const lodash_version = JSON.parse(fs.readFileSync(join(testDir, "node_modules/lodash/package.json"), "utf8")).version;
expect(lodash_version).toBe("4.17.21");
const svelte_version = JSON.parse(fs.readFileSync(join(testDir, "node_modules/svelte/package.json"), "utf8")).version;
expect(svelte_version).toBe("3.0.0");
});