Skip to content

Commit e21541f

Browse files
authored
Merge pull request #800 from integer32llc/ui-semver
2 parents 2b361fe + 9f44b18 commit e21541f

File tree

8 files changed

+466
-396
lines changed

8 files changed

+466
-396
lines changed

tests/spec/requests/caching_spec.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
require 'net/http'
22
require 'spec_helper'
3+
require_relative './connection'
34

45
RSpec.feature "Caching headers are provided for assets ", type: :request do
56
let(:index_uri) { URI(Capybara.app_host) }
@@ -8,7 +9,7 @@
89
let(:one_day_s) { 24 * 60 * 60 }
910

1011
it "is cached for one day" do
11-
Net::HTTP.start(index_uri.host, index_uri.port) do |http|
12+
start_http(index_uri) do |http|
1213
request = Net::HTTP::Get.new(index_uri)
1314
response = http.request(request)
1415

@@ -26,7 +27,7 @@
2627
let(:one_year_s) { 365 * 24 * 60 * 60 }
2728

2829
it 'is cached for one year' do
29-
Net::HTTP.start(asset_uri.host, asset_uri.port) do |http|
30+
start_http(asset_uri) do |http|
3031
request = Net::HTTP::Get.new(asset_uri)
3132
response = http.request(request)
3233
expect(response['cache-control']).to match(/public.*max-age.*=.*#{one_year_s}/)

tests/spec/requests/connection.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
def start_http(uri, &block)
2+
http = Net::HTTP.new(uri.host, uri.port)
3+
http.use_ssl = uri.scheme == 'https'
4+
5+
http.start(&block)
6+
end

tests/spec/requests/cors_spec.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
2-
31
require 'net/http'
42
require 'spec_helper'
3+
require_relative './connection'
54

65
RSpec.feature "Cross-origin requests", :cors, type: :request do
76
let(:evaluate_json_uri) { URI.join(Capybara.app_host, '/evaluate.json') }
87

98
it "allows preflight requests for POSTing to evaluate.json" do
10-
Net::HTTP.start(evaluate_json_uri.host, evaluate_json_uri.port) do |http|
9+
start_http(evaluate_json_uri) do |http|
1110
request = Net::HTTP::Options.new(evaluate_json_uri)
1211
request['origin'] = 'https://rust-lang.org'
1312
request['access-control-request-headers'] = 'content-type'

tests/spec/requests/evaluate_spec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
require 'net/http'
44
require 'spec_helper'
5+
require_relative './connection'
56

67
RSpec.feature "evaluate.json endpoint", type: :request do
78
let(:evaluate_json_uri) { URI.join(Capybara.app_host, '/evaluate.json') }
@@ -44,7 +45,7 @@
4445
let(:body) { JSON.generate(request) }
4546

4647
it "allows evaluating compilation requests from the Rust home page" do
47-
Net::HTTP.start(evaluate_json_uri.host, evaluate_json_uri.port) do |http|
48+
start_http(evaluate_json_uri) do |http|
4849
request = Net::HTTP::Post.new(evaluate_json_uri)
4950
request.body = body
5051
request['Content-Type'] = 'application/json'

tests/spec/requests/malformed_json_spec.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
require 'net/http'
44
require 'spec_helper'
5+
require_relative './connection'
56

67
RSpec.feature "JSON argument deserialization", type: :request do
78
let(:evaluate_json_uri) { URI.join(Capybara.app_host, '/evaluate.json') }
@@ -10,7 +11,7 @@
1011
let(:body) { JSON.generate({}) }
1112

1213
it "responds with a JSON error" do
13-
Net::HTTP.start(evaluate_json_uri.host, evaluate_json_uri.port) do |http|
14+
start_http(evaluate_json_uri) do |http|
1415
request = Net::HTTP::Post.new(evaluate_json_uri)
1516
request.body = body
1617
request['Content-Type'] = 'application/json'
@@ -28,7 +29,7 @@
2829
let(:body) { 'lolhello' }
2930

3031
it "responds with a JSON error" do
31-
Net::HTTP.start(evaluate_json_uri.host, evaluate_json_uri.port) do |http|
32+
start_http(evaluate_json_uri) do |http|
3233
request = Net::HTTP::Post.new(evaluate_json_uri)
3334
request.body = body
3435
request['Content-Type'] = 'text/plain'

tests/spec/spec_helper.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
require 'webdrivers'
3131
require 'capybara-screenshot/rspec'
3232

33+
PROTOCOL = ENV.fetch('PLAYGROUND_UI_PROTOCOL', 'http')
3334
ADDRESS = ENV.fetch('PLAYGROUND_UI_ADDRESS', '127.0.0.1')
3435
PORT = ENV.fetch('PLAYGROUND_UI_PORT', '5000')
3536

@@ -56,7 +57,7 @@
5657
end
5758

5859
Capybara.default_driver = Capybara.javascript_driver = :firefox
59-
Capybara.app_host = "http://#{ADDRESS}:#{PORT}"
60+
Capybara.app_host = "#{PROTOCOL}://#{ADDRESS}:#{PORT}"
6061
Capybara.run_server = false
6162
Capybara.default_max_wait_time = ENV.fetch('CAPYBARA_WAIT', 5).to_f
6263
Capybara.automatic_label_click = true

ui/frontend/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
"version": "0.0.1",
44
"description": "UI for the Rust playground",
55
"main": "index.js",
6+
"resolutions": {
7+
"@types/react": "^17.0.2"
8+
},
69
"dependencies": {
710
"@popperjs/core": "^2.4.0",
811
"ace-builds": "^1.4.4",

0 commit comments

Comments
 (0)