1const t = require('tap') 2const { load: loadMockNpm } = require('../../fixtures/mock-npm.js') 3const MockRegistry = require('@npmcli/mock-registry') 4 5const pkgName = '@npmcli/test-package' 6const authToken = 'test-auth-token' 7const username = 'test-user' 8const auth = { '//registry.npmjs.org/:_authToken': authToken } 9 10t.test('no args', async t => { 11 const { npm } = await loadMockNpm(t) 12 await t.rejects( 13 npm.exec('unstar', []), 14 { code: 'EUSAGE' }, 15 'should throw usage error' 16 ) 17}) 18 19t.test('unstar a package unicode:false', async t => { 20 const { npm, joinedOutput } = await loadMockNpm(t, { 21 config: { unicode: false, ...auth }, 22 }) 23 const registry = new MockRegistry({ 24 tap: t, 25 registry: npm.config.get('registry'), 26 authorization: authToken, 27 }) 28 const manifest = registry.manifest({ name: pkgName, users: { [username]: true } }) 29 await registry.package({ manifest, query: { write: true } }) 30 registry.whoami({ username }) 31 registry.star(manifest, {}) 32 33 await npm.exec('unstar', [pkgName]) 34 t.equal( 35 joinedOutput(), 36 '( ) @npmcli/test-package', 37 'should output unstarred package msg' 38 ) 39}) 40 41t.test('unstar a package unicode:true', async t => { 42 const { npm, joinedOutput } = await loadMockNpm(t, { 43 config: { unicode: true, ...auth }, 44 }) 45 46 const registry = new MockRegistry({ 47 tap: t, 48 registry: npm.config.get('registry'), 49 authorization: authToken, 50 }) 51 const manifest = registry.manifest({ name: pkgName, users: { [username]: true } }) 52 await registry.package({ manifest, query: { write: true } }) 53 registry.whoami({ username }) 54 registry.star(manifest, {}) 55 56 await npm.exec('unstar', [pkgName]) 57 t.equal( 58 joinedOutput(), 59 '☆ @npmcli/test-package', 60 'should output unstarred package msg' 61 ) 62}) 63