-
Notifications
You must be signed in to change notification settings - Fork 87
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: _npmUser info in fullManifest (#554)
> closes #553, fixing the issue introduced by #491, which caused an abnormality in the _npmUser field in fullManifest. 1. 🧶 Update the `publish` method to pass in the actual operating publisher information. 2. 🧶 Update the diffMeta function to compare the _npmUser as well. 3. ♻️ Existing data needs to be resynchronized, from 6.2 to 7.20. ----- > closes #553 , 修复由 #491 引入问题,导致 fullManifest 中 _npmUser 字段异常 1. 🧶 更新 .publish 方法,传入实际操作的 publisher 信息 2. 🧶 更新 diffMeta 算法,将 _npmUser 也进行比对 3. ♻️ 存量数据需要重新进行同步,6.2 -> 7.20
- Loading branch information
Showing
2 changed files
with
48 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -598,7 +598,7 @@ describe('test/core/service/PackageSyncerService/executeTask.test.ts', () => { | |
log = await TestUtil.readStreamToLog(stream); | ||
// console.log(log); | ||
assert(log.includes('Synced version 1.0.0 already exists, skip publish, try to set in local manifest')); | ||
assert(log.includes('] 🟢 Synced updated 1 versions')); | ||
assert(log.includes('] 🟢 Synced updated')); | ||
assert(log.includes('] 🚧 Syncing versions 1 => 2')); | ||
app.mockAgent().assertNoPendingInterceptors(); | ||
await mock.restore(); | ||
|
@@ -622,7 +622,7 @@ describe('test/core/service/PackageSyncerService/executeTask.test.ts', () => { | |
log = await TestUtil.readStreamToLog(stream); | ||
// console.log(log); | ||
assert(log.includes('] 🐛 Remote version 1.0.0 not exists on local abbreviated manifests, need to refresh')); | ||
assert(log.includes('] 🟢 Synced updated 1 versions')); | ||
assert(log.includes('] 🟢 Synced updated')); | ||
assert(log.includes('] 🚧 Syncing versions 2 => 2')); | ||
app.mockAgent().assertNoPendingInterceptors(); | ||
await mock.restore(); | ||
|
@@ -1000,7 +1000,7 @@ describe('test/core/service/PackageSyncerService/executeTask.test.ts', () => { | |
assert(stream); | ||
log = await TestUtil.readStreamToLog(stream); | ||
// console.log(log); | ||
assert(log.includes('] 🟢 Synced updated 0 versions, removed 1 versions')); | ||
assert(log.includes('removed 1 versions')); | ||
assert(log.includes('] 🟢 Removed version 1.0.0 success')); | ||
const r = await packageManagerService.listPackageFullManifests('@cnpmcore', 'test-sync-package-has-two-versions'); | ||
assert(Object.keys(r.data!.versions).length === 1); | ||
|
@@ -1882,7 +1882,7 @@ describe('test/core/service/PackageSyncerService/executeTask.test.ts', () => { | |
assert(stream); | ||
let log = await TestUtil.readStreamToLog(stream); | ||
// console.log(log); | ||
assert(log.includes('🟢 Synced version 2.0.0 success, different meta: {"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}},"os":["linux"],"cpu":["x64"]}')); | ||
assert(log.includes('Synced version 2.0.0 success, different meta: {"peerDependenciesMeta":{"bufferutil":{"optional":true},"utf-8-validate":{"optional":true}},"os":["linux"],"cpu":["x64"],"_npmUser":{"name":"fengmk2","email":"[email protected]"}}')); | ||
assert(log.includes('Z] 👉👉👉👉👉 Tips: sync test tips here 👈👈👈👈👈')); | ||
assert(log.includes(', skipDependencies: false')); | ||
let manifests = await packageManagerService.listPackageFullManifests('', name); | ||
|
@@ -2416,7 +2416,47 @@ describe('test/core/service/PackageSyncerService/executeTask.test.ts', () => { | |
const pkg = await packageRepository.findPackage('', 'foobar'); | ||
app.expectLog(`[packageManagerService.unpublishPackage:skip] ${pkg?.packageId} already unpublished`); | ||
|
||
}); | ||
|
||
it('should resync history version if forceSyncHistory is true', async () => { | ||
app.mockHttpclient('https://registry.npmjs.org/foobar', 'GET', { | ||
data: await TestUtil.readFixturesFile('registry.npmjs.org/foobar.json'), | ||
persist: false, | ||
repeats: 1, | ||
}); | ||
app.mockHttpclient('https://registry.npmjs.org/foobar/-/foobar-1.0.0.tgz', 'GET', { | ||
data: await TestUtil.readFixturesFile('registry.npmjs.org/foobar/-/foobar-1.0.0.tgz'), | ||
persist: false, | ||
repeats: 2, | ||
}); | ||
app.mockHttpclient('https://registry.npmjs.org/foobar/-/foobar-1.1.0.tgz', 'GET', { | ||
data: await TestUtil.readFixturesFile('registry.npmjs.org/foobar/-/foobar-1.1.0.tgz'), | ||
persist: false, | ||
repeats: 2, | ||
}); | ||
await packageSyncerService.createTask('foobar', { skipDependencies: true }); | ||
let task = await packageSyncerService.findExecuteTask(); | ||
assert(task); | ||
await packageSyncerService.executeTask(task); | ||
|
||
|
||
// resync | ||
const manifest = JSON.parse((await TestUtil.readFixturesFile('registry.npmjs.org/foobar.json')).toString()); | ||
manifest.versions['1.0.0']._npmUser = { name: 'banana', email: '[email protected]' }; | ||
app.mockHttpclient('https://registry.npmjs.org/foobar', 'GET', { | ||
data: manifest, | ||
persist: false, | ||
repeats: 1, | ||
}); | ||
await packageSyncerService.createTask('foobar', { skipDependencies: true }); | ||
task = await packageSyncerService.findExecuteTask(); | ||
assert(task); | ||
await packageSyncerService.executeTask(task); | ||
const stream2 = await packageSyncerService.findTaskLog(task); | ||
assert(stream2); | ||
const log2 = await TestUtil.readStreamToLog(stream2); | ||
// console.log(log2); | ||
assert(/different meta: {"_npmUser":{"name":"banana","email":"banana@cnpmjs.org"}}/.test(log2)); | ||
}); | ||
}); | ||
}); | ||
|