@@ -31,14 +31,15 @@ def install
31
31
( buildpath /"src/github.com/remind101/" ) . mkpath
32
32
ln_s buildpath , buildpath /"src/github.com/remind101/empire"
33
33
34
- system "go" , "build" , "-o" , bin / "emp" , "./src/github.com/remind101/empire/cmd/emp"
34
+ system "go" , "build" , * std_go_args , "./src/github.com/remind101/empire/cmd/emp"
35
35
end
36
36
37
37
test do
38
- require "webrick"
38
+ port = free_port
39
39
40
- server = WEBrick ::HTTPServer . new Port : 8035
41
- server . mount_proc "/apps/foo/releases" do |_req , res |
40
+ # Mock an API server response to test the CLI
41
+ fork do
42
+ server = TCPServer . new ( port )
42
43
resp = {
43
44
"created_at" => "2015-10-12T0:00:00.00000000-00:00" ,
44
45
"description" => "my awesome release" ,
@@ -49,17 +50,23 @@ def install
49
50
} ,
50
51
"version" => 1 ,
51
52
}
52
- res . body = JSON . generate ( [ resp ] )
53
+ body = JSON . generate ( [ resp ] )
54
+
55
+ loop do
56
+ socket = server . accept
57
+ socket . write "HTTP/1.1 200 OK\r \n " \
58
+ "Content-Type: application/json; charset=utf-8\r \n " \
59
+ "Content-Length: #{ body . bytesize } \r \n " \
60
+ "\r \n "
61
+ socket . write body
62
+ socket . close
63
+ end
53
64
end
54
65
55
- Thread . new { server . start }
66
+ sleep 1
56
67
57
- begin
58
- ENV [ "EMPIRE_API_URL" ] = "http://127.0.0.1:8035"
59
- assert_match ( /v1 zab Oct 1(1|2|3) 2015 my awesome release/ ,
60
- shell_output ( "#{ bin } /emp releases -a foo" ) . strip )
61
- ensure
62
- server . shutdown
63
- end
68
+ ENV [ "EMPIRE_API_URL" ] = "http://127.0.0.1:#{ port } "
69
+ assert_match ( /v1 zab Oct 1(1|2|3) 2015 my awesome release/ ,
70
+ shell_output ( "#{ bin } /emp releases -a foo" ) . strip )
64
71
end
65
72
end
0 commit comments