Skip to content

Commit fcc9e40

Browse files
committed
chore: add tests for logout with project config
1 parent 3a927ee commit fcc9e40

File tree

1 file changed

+45
-6
lines changed

1 file changed

+45
-6
lines changed

test/lib/commands/logout.js

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ t.test('user/pass logout - user config', async t => {
5858
const { npm, home, logs } = await loadMockNpm(t, {
5959
homeDir: {
6060
'.npmrc': [
61-
'//registry.npmjs.org/:username=foo',
62-
'//registry.npmjs.org/:_password=bar',
63-
'other-config=true',
61+
'//registry.npmjs.org/:username=foo',
62+
'//registry.npmjs.org/:_password=bar',
63+
'other-config=true',
6464
].join('\n'),
6565
},
6666
})
@@ -77,7 +77,7 @@ t.test('user/pass logout - user config', async t => {
7777
})
7878

7979
t.test('missing credentials', async t => {
80-
const { npm, logs } = await loadMockNpm(t)
80+
const { npm } = await loadMockNpm(t)
8181

8282
await t.rejects(
8383
npm.exec('logout', []),
@@ -94,8 +94,8 @@ t.test('ignore invalid scoped registry config', async t => {
9494
config: { scope: '@myscope' },
9595
homeDir: {
9696
'.npmrc': [
97-
'//registry.npmjs.org/:_authToken=@foo/',
98-
'other-config=true',
97+
'//registry.npmjs.org/:_authToken=@foo/',
98+
'other-config=true',
9999

100100
].join('\n'),
101101
},
@@ -113,3 +113,42 @@ t.test('ignore invalid scoped registry config', async t => {
113113
const userRc = await fs.readFile(join(home, '.npmrc'), 'utf-8')
114114
t.equal(userRc.trim(), 'other-config=true')
115115
})
116+
117+
t.test('token logout - project config', async t => {
118+
const { npm, home, logs, prefix } = await loadMockNpm(t, {
119+
homeDir: {
120+
'.npmrc': [
121+
'//registry.npmjs.org/:_authToken=@foo/',
122+
'other-config=true',
123+
].join('\n'),
124+
},
125+
prefixDir: {
126+
'.npmrc': [
127+
'//registry.npmjs.org/:_authToken=@bar/',
128+
'other-config=true',
129+
].join('\n'),
130+
},
131+
})
132+
133+
const mockRegistry = new MockRegistry({ tap: t, registry: 'https://registry.npmjs.org/' })
134+
mockRegistry.logout('@bar/')
135+
await npm.exec('logout', [])
136+
137+
t.equal(
138+
logs.verbose.find(l => l[0] === 'logout')[1],
139+
'clearing token for https://registry.npmjs.org/',
140+
'should log message with correct registry'
141+
)
142+
const userRc = await fs.readFile(join(home, '.npmrc'), 'utf-8')
143+
t.equal(userRc.trim(), [
144+
'//registry.npmjs.org/:_authToken=@foo/',
145+
'other-config=true',
146+
].join('\n'), 'leaves user config alone')
147+
t.equal(
148+
logs.verbose.find(l => l[0] === 'logout')[1],
149+
'clearing token for https://registry.npmjs.org/',
150+
'should log message with correct registry'
151+
)
152+
const projectRc = await fs.readFile(join(prefix, '.npmrc'), 'utf-8')
153+
t.equal(projectRc.trim(), 'other-config=true', 'removes project config')
154+
})

0 commit comments

Comments
 (0)