@@ -58,9 +58,9 @@ t.test('user/pass logout - user config', async t => {
58
58
const { npm, home, logs } = await loadMockNpm ( t , {
59
59
homeDir : {
60
60
'.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' ,
64
64
] . join ( '\n' ) ,
65
65
} ,
66
66
} )
@@ -77,7 +77,7 @@ t.test('user/pass logout - user config', async t => {
77
77
} )
78
78
79
79
t . test ( 'missing credentials' , async t => {
80
- const { npm, logs } = await loadMockNpm ( t )
80
+ const { npm } = await loadMockNpm ( t )
81
81
82
82
await t . rejects (
83
83
npm . exec ( 'logout' , [ ] ) ,
@@ -94,8 +94,8 @@ t.test('ignore invalid scoped registry config', async t => {
94
94
config : { scope : '@myscope' } ,
95
95
homeDir : {
96
96
'.npmrc' : [
97
- '//registry.npmjs.org/:_authToken=@foo/' ,
98
- 'other-config=true' ,
97
+ '//registry.npmjs.org/:_authToken=@foo/' ,
98
+ 'other-config=true' ,
99
99
100
100
] . join ( '\n' ) ,
101
101
} ,
@@ -113,3 +113,42 @@ t.test('ignore invalid scoped registry config', async t => {
113
113
const userRc = await fs . readFile ( join ( home , '.npmrc' ) , 'utf-8' )
114
114
t . equal ( userRc . trim ( ) , 'other-config=true' )
115
115
} )
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