@@ -57,6 +57,25 @@ describe('resolveSettings', () => {
5757 assert . strictEqual ( settings . username , 'jane' )
5858 } )
5959
60+ it ( 'returns invalid_username when username contains disallowed characters' , ( ) => {
61+ const withSpace = resolveSettings ( { ...basePkg , wpDeployer : { username : 'jane doe' } } )
62+ assert . strictEqual ( withSpace . error , 'invalid_username' )
63+ assert . ok ( withSpace . errorMessage && / l e t t e r s , n u m b e r s , h y p h e n s , a n d u n d e r s c o r e s / . test ( withSpace . errorMessage ) )
64+
65+ const withQuote = resolveSettings ( { ...basePkg , wpDeployer : { username : 'jane"doe' } } )
66+ assert . strictEqual ( withQuote . error , 'invalid_username' )
67+
68+ const withSemicolon = resolveSettings ( { ...basePkg , wpDeployer : { username : 'jane;rm' } } )
69+ assert . strictEqual ( withSemicolon . error , 'invalid_username' )
70+ } )
71+
72+ it ( 'accepts username with only alphanumeric, hyphen, and underscore' , ( ) => {
73+ assert . strictEqual ( resolveSettings ( { ...basePkg , wpDeployer : { username : 'jane' } } ) . error , null )
74+ assert . strictEqual ( resolveSettings ( { ...basePkg , wpDeployer : { username : 'jane_doe' } } ) . error , null )
75+ assert . strictEqual ( resolveSettings ( { ...basePkg , wpDeployer : { username : 'jane-doe-99' } } ) . error , null )
76+ assert . strictEqual ( resolveSettings ( { ...basePkg , wpDeployer : { username : 'User123' } } ) . error , null )
77+ } )
78+
6079 it ( 'defaults url to plugins.svn.wordpress.org for plugin' , ( ) => {
6180 const pkg = { ...basePkg , wpDeployer : { username : 'jane' } }
6281 const { settings } = resolveSettings ( pkg )
0 commit comments