Skip to content

Commit 3cbe80a

Browse files
committed
Make headers lower-case by convention and test some cors code-paths
1 parent 8abed41 commit 3cbe80a

File tree

5 files changed

+53
-22
lines changed

5 files changed

+53
-22
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## [0.0.21] - 2025-04-15
2+
3+
- Fix incorrect content-type for help action
4+
15
## [0.0.20] - 2025-04-14
26

37
- Handle more cors scenarios

Gemfile.lock

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
foobara-http-command-connector (0.0.20)
4+
foobara-http-command-connector (0.0.21)
55
foobara (~> 0.0.88)
66

77
GEM
@@ -21,20 +21,20 @@ GEM
2121
diff-lcs (1.6.1)
2222
docile (1.4.1)
2323
dotenv (3.1.8)
24-
extract-repo (0.0.9)
25-
foobara
26-
foobara-sh-cli-connector
27-
ffi (1.17.1)
28-
ffi (1.17.1-aarch64-linux-gnu)
29-
ffi (1.17.1-aarch64-linux-musl)
30-
ffi (1.17.1-arm-linux-gnu)
31-
ffi (1.17.1-arm-linux-musl)
32-
ffi (1.17.1-arm64-darwin)
33-
ffi (1.17.1-x86-linux-gnu)
34-
ffi (1.17.1-x86-linux-musl)
35-
ffi (1.17.1-x86_64-darwin)
36-
ffi (1.17.1-x86_64-linux-gnu)
37-
ffi (1.17.1-x86_64-linux-musl)
24+
extract-repo (0.0.10)
25+
foobara (~> 0.0.102)
26+
foobara-sh-cli-connector (~> 0.0.1)
27+
ffi (1.17.2)
28+
ffi (1.17.2-aarch64-linux-gnu)
29+
ffi (1.17.2-aarch64-linux-musl)
30+
ffi (1.17.2-arm-linux-gnu)
31+
ffi (1.17.2-arm-linux-musl)
32+
ffi (1.17.2-arm64-darwin)
33+
ffi (1.17.2-x86-linux-gnu)
34+
ffi (1.17.2-x86-linux-musl)
35+
ffi (1.17.2-x86_64-darwin)
36+
ffi (1.17.2-x86_64-linux-gnu)
37+
ffi (1.17.2-x86_64-linux-musl)
3838
foob (0.0.13)
3939
foobara (~> 0.0.99)
4040
foobara-command-generator (~> 0.0.1)
@@ -71,7 +71,7 @@ GEM
7171
foobara-files-generator
7272
foobara-dotenv-loader (0.0.3)
7373
dotenv
74-
foobara-empty-ruby-project-generator (0.0.15)
74+
foobara-empty-ruby-project-generator (0.0.17)
7575
extract-repo (~> 0.0.1)
7676
foobara (~> 0.0.94)
7777
foobara-files-generator (~> 0.0.1)
@@ -89,7 +89,7 @@ GEM
8989
foobara-organization-generator (0.0.2)
9090
foobara
9191
foobara-files-generator
92-
foobara-rack-connector-generator (0.0.9)
92+
foobara-rack-connector-generator (0.0.11)
9393
foobara
9494
foobara-files-generator
9595
foobara-redis-crud-driver-generator (0.0.4)
@@ -115,9 +115,9 @@ GEM
115115
foobara-type-generator (0.0.4)
116116
foobara
117117
foobara-files-generator
118-
foobara-typescript-react-command-form-generator (0.0.11)
118+
foobara-typescript-react-command-form-generator (0.0.12)
119119
foobara-typescript-remote-command-generator (~> 0.0.1)
120-
foobara-typescript-remote-command-generator (0.0.17)
120+
foobara-typescript-remote-command-generator (0.0.18)
121121
foobara-files-generator (~> 0.0.1)
122122
foobara-util (0.0.11)
123123
formatador (1.1.0)

spec/foobara/command_connectors_http/http_spec.rb

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ def execute
192192
end
193193
end
194194

195-
describe "#run_command" do
195+
describe "#run" do
196196
before do
197197
if allowed_rules
198198
command_connector.allowed_rules(allowed_rules)
@@ -856,6 +856,33 @@ def execute
856856
end
857857
end
858858

859+
context "when handling cors stuff" do
860+
let(:method) { "OPTIONS" }
861+
let(:headers) do
862+
{ "access-control-request-headers" => "Content-Type" }
863+
end
864+
865+
stub_env_vars(
866+
"FOOBARA_HTTP_RESPONSE_HEADER_ACCESS_CONTROL_ALLOW_METHODS" => "GET, POST, PUT, PATCH, DELETE, OPTIONS",
867+
"FOOBARA_HTTP_RESPONSE_HEADER_ACCESS_CONTROL_ALLOW_HEADERS" => "*",
868+
"FOOBARA_HTTP_RESPONSE_HEADER_ACCESS_CONTROL_EXPOSE_HEADERS" => "X-Access-Token",
869+
"FOOBARA_HTTP_RESPONSE_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS" => "true",
870+
"FOOBARA_HTTP_RESPONSE_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN" => "http://localhost:3000",
871+
"FOOBARA_HTTP_RESPONSE_HEADER_ACCESS_CONTROL_MAX_AGE" => "3600"
872+
)
873+
874+
it "returns various cors headers" do
875+
expect(response.headers).to eq(
876+
"access-control-expose-headers" => "X-Access-Token",
877+
"access-control-allow-credentials" => "true",
878+
"access-control-allow-origin" => "http://localhost:3000",
879+
"access-control-allow-methods" => "GET, POST, PUT, PATCH, DELETE, OPTIONS",
880+
"access-control-allow-headers" => "Content-Type",
881+
"access-control-max-age" => "3600"
882+
)
883+
end
884+
end
885+
859886
describe "#manifest" do
860887
context "when various transformers" do
861888
let(:query_string) { "bbaassee=#{base}" }

src/http/commands/get_options.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def set_allow_headers
3535
allow_headers = ENV.fetch("FOOBARA_HTTP_RESPONSE_HEADER_ACCESS_CONTROL_ALLOW_HEADERS", nil)
3636
if allow_headers
3737
if allow_headers == "*"
38-
allow_headers = request.headers["HTTP_ACCESS_CONTROL_REQUEST_HEADERS"]
38+
allow_headers = request.headers["access-control-request-headers"]
3939
end
4040
request.response_headers["access-control-allow-headers"] = allow_headers
4141
end

version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module Foobara
22
module HttpCommandConnector
3-
VERSION = "0.0.20".freeze
3+
VERSION = "0.0.21".freeze
44

55
local_ruby_version = File.read("#{__dir__}/.ruby-version").chomp
66
local_ruby_version_minor = local_ruby_version[/\A(\d+\.\d+)\.\d+\z/, 1]

0 commit comments

Comments
 (0)