@@ -27,7 +27,7 @@ import (
2727
2828func Test_Docs_DocsCommand (t * testing.T ) {
2929 testutil .TableTestCommand (t , testutil.CommandTests {
30- "opens docs homepage without search " : {
30+ "opens docs homepage" : {
3131 Setup : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock , cf * shared.ClientFactory ) {
3232 },
3333 ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
@@ -40,93 +40,9 @@ func Test_Docs_DocsCommand(t *testing.T) {
4040 "https://docs.slack.dev" ,
4141 },
4242 },
43- "fails when positional argument provided without search flag " : {
43+ "rejects positional arguments " : {
4444 CmdArgs : []string {"Block Kit" },
45- ExpectedErrorStrings : []string {"Invalid docs command. Did you mean to search?" },
46- ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
47- // No browser calls should be made when command fails
48- cm .Browser .AssertNotCalled (t , "OpenURL" )
49- },
50- },
51- "fails when multiple positional arguments provided without search flag" : {
52- CmdArgs : []string {"webhook" , "send" , "message" },
53- ExpectedErrorStrings : []string {"Invalid docs command. Did you mean to search?" },
54- ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
55- // No browser calls should be made when command fails
56- cm .Browser .AssertNotCalled (t , "OpenURL" )
57- },
58- },
59- "opens docs with search query using space syntax" : {
60- CmdArgs : []string {"--search" , "messaging" },
61- ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
62- expectedURL := "https://docs.slack.dev/search/?q=messaging"
63- cm .Browser .AssertCalled (t , "OpenURL" , expectedURL )
64- cm .IO .AssertCalled (t , "PrintTrace" , mock .Anything , slacktrace .DocsSearchSuccess , mock .Anything )
65- },
66- ExpectedOutputs : []string {
67- "Docs Search" ,
68- "https://docs.slack.dev/search/?q=messaging" ,
69- },
70- },
71- "handles search with multiple arguments" : {
72- CmdArgs : []string {"--search" , "Block" , "Kit" , "Element" },
73- ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
74- expectedURL := "https://docs.slack.dev/search/?q=Block+Kit+Element"
75- cm .Browser .AssertCalled (t , "OpenURL" , expectedURL )
76- cm .IO .AssertCalled (t , "PrintTrace" , mock .Anything , slacktrace .DocsSearchSuccess , mock .Anything )
77- },
78- ExpectedOutputs : []string {
79- "Docs Search" ,
80- "https://docs.slack.dev/search/?q=Block+Kit+Element" ,
81- },
82- },
83- "handles search query with multiple words" : {
84- CmdArgs : []string {"--search" , "socket mode" },
85- ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
86- expectedURL := "https://docs.slack.dev/search/?q=socket+mode"
87- cm .Browser .AssertCalled (t , "OpenURL" , expectedURL )
88- cm .IO .AssertCalled (t , "PrintTrace" , mock .Anything , slacktrace .DocsSearchSuccess , mock .Anything )
89- },
90- ExpectedOutputs : []string {
91- "Docs Search" ,
92- "https://docs.slack.dev/search/?q=socket+mode" ,
93- },
94- },
95- "handles special characters in search query" : {
96- CmdArgs : []string {"--search" , "messages & webhooks" },
97- ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
98- expectedURL := "https://docs.slack.dev/search/?q=messages+%26+webhooks"
99- cm .Browser .AssertCalled (t , "OpenURL" , expectedURL )
100- cm .IO .AssertCalled (t , "PrintTrace" , mock .Anything , slacktrace .DocsSearchSuccess , mock .Anything )
101- },
102- ExpectedOutputs : []string {
103- "Docs Search" ,
104- "https://docs.slack.dev/search/?q=messages+%26+webhooks" ,
105- },
106- },
107- "handles search query with quotes" : {
108- CmdArgs : []string {"--search" , "webhook \" send message\" " },
109- ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
110- expectedURL := "https://docs.slack.dev/search/?q=webhook+%22send+message%22"
111- cm .Browser .AssertCalled (t , "OpenURL" , expectedURL )
112- cm .IO .AssertCalled (t , "PrintTrace" , mock .Anything , slacktrace .DocsSearchSuccess , mock .Anything )
113- },
114- ExpectedOutputs : []string {
115- "Docs Search" ,
116- "https://docs.slack.dev/search/?q=webhook+%22send+message%22" ,
117- },
118- },
119- "handles search flag without argument" : {
120- CmdArgs : []string {"--search" },
121- ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
122- expectedURL := "https://docs.slack.dev/search/"
123- cm .Browser .AssertCalled (t , "OpenURL" , expectedURL )
124- cm .IO .AssertCalled (t , "PrintTrace" , mock .Anything , slacktrace .DocsSearchSuccess , mock .Anything )
125- },
126- ExpectedOutputs : []string {
127- "Docs Search" ,
128- "https://docs.slack.dev/search/" ,
129- },
45+ ExpectedErrorStrings : []string {"unknown command" },
13046 },
13147 }, func (cf * shared.ClientFactory ) * cobra.Command {
13248 return NewCommand (cf )
0 commit comments