fixes #698
This commit is contained in:
		
							parent
							
								
									9471429cb3
								
							
						
					
					
						commit
						037d1d647d
					
				
					 3 changed files with 55 additions and 2 deletions
				
			
		|  | @ -119,8 +119,7 @@ func execSubscribe(c *cli.Context) error { | |||
| 	} | ||||
| 	if token != "" { | ||||
| 		options = append(options, client.WithBearerAuth(token)) | ||||
| 	} | ||||
| 	if user != "" { | ||||
| 	} else if user != "" { | ||||
| 		var pass string | ||||
| 		parts := strings.SplitN(user, ":", 2) | ||||
| 		if len(parts) == 2 { | ||||
|  | @ -136,6 +135,10 @@ func execSubscribe(c *cli.Context) error { | |||
| 			fmt.Fprintf(c.App.ErrWriter, "\r%s\r", strings.Repeat(" ", 20)) | ||||
| 		} | ||||
| 		options = append(options, client.WithBasicAuth(user, pass)) | ||||
| 	} else if conf.DefaultToken != "" { | ||||
| 		options = append(options, client.WithBearerAuth(conf.DefaultToken)) | ||||
| 	} else if conf.DefaultUser != "" && conf.DefaultPassword != nil { | ||||
| 		options = append(options, client.WithBasicAuth(conf.DefaultUser, *conf.DefaultPassword)) | ||||
| 	} | ||||
| 	if scheduled { | ||||
| 		options = append(options, client.WithScheduled()) | ||||
|  |  | |||
|  | @ -310,3 +310,52 @@ func TestCLI_Subscribe_Token_And_UserPass(t *testing.T) { | |||
| 	require.Error(t, err) | ||||
| 	require.Equal(t, "cannot set both --user and --token", err.Error()) | ||||
| } | ||||
| 
 | ||||
| func TestCLI_Subscribe_Default_Token(t *testing.T) { | ||||
| 	message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` | ||||
| 	server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||||
| 		require.Equal(t, "/mytopic/json", r.URL.Path) | ||||
| 		require.Equal(t, "Bearer tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2", r.Header.Get("Authorization")) | ||||
| 
 | ||||
| 		w.WriteHeader(http.StatusOK) | ||||
| 		w.Write([]byte(message)) | ||||
| 	})) | ||||
| 	defer server.Close() | ||||
| 
 | ||||
| 	filename := filepath.Join(t.TempDir(), "client.yml") | ||||
| 	require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` | ||||
| default-host: %s | ||||
| default-token: tk_AgQdq7mVBoFD37zQVN29RhuMzNIz2 | ||||
| `, server.URL)), 0600)) | ||||
| 
 | ||||
| 	app, _, stdout, _ := newTestApp() | ||||
| 
 | ||||
| 	require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--config=" + filename, "mytopic"})) | ||||
| 
 | ||||
| 	require.Equal(t, message, strings.TrimSpace(stdout.String())) | ||||
| } | ||||
| 
 | ||||
| func TestCLI_Subscribe_Default_UserPass(t *testing.T) { | ||||
| 	message := `{"id":"RXIQBFaieLVr","time":124,"expires":1124,"event":"message","topic":"mytopic","message":"triggered"}` | ||||
| 	server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||||
| 		require.Equal(t, "/mytopic/json", r.URL.Path) | ||||
| 		require.Equal(t, "Basic cGhpbGlwcDpteXBhc3M=", r.Header.Get("Authorization")) | ||||
| 
 | ||||
| 		w.WriteHeader(http.StatusOK) | ||||
| 		w.Write([]byte(message)) | ||||
| 	})) | ||||
| 	defer server.Close() | ||||
| 
 | ||||
| 	filename := filepath.Join(t.TempDir(), "client.yml") | ||||
| 	require.Nil(t, os.WriteFile(filename, []byte(fmt.Sprintf(` | ||||
| default-host: %s | ||||
| default-user: philipp | ||||
| default-password: mypass | ||||
| `, server.URL)), 0600)) | ||||
| 
 | ||||
| 	app, _, stdout, _ := newTestApp() | ||||
| 
 | ||||
| 	require.Nil(t, app.Run([]string{"ntfy", "subscribe", "--poll", "--config=" + filename, "mytopic"})) | ||||
| 
 | ||||
| 	require.Equal(t, message, strings.TrimSpace(stdout.String())) | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue