Skip to content

Commit 9c39d46

Browse files
committed
Merge branch 'main' of github.com:rogancodes/ruby-lsp-rails into fetch_indexes_and_fks_on_model_hover
2 parents 313e36f + 2b25b2d commit 9c39d46

File tree

4 files changed

+59
-14
lines changed

4 files changed

+59
-14
lines changed

Rakefile

+11-2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,19 @@ load "rails/tasks/statistics.rake"
1010
require "bundler/gem_tasks"
1111
require "rake/testtask"
1212

13+
# Since `server.rb` runs within the host Rails application, we want to ensure
14+
# we don't accidentally depend on sorbet-runtime. `server_test` intentionally doesn't use `test_helper`.
15+
# We run `server_test` in a seperate Rake task.
1316
Rake::TestTask.new(:test) do |t|
1417
t.libs << "test"
1518
t.libs << "lib"
16-
t.test_files = FileList["test/**/*_test.rb"]
19+
t.test_files = FileList["test/**/*_test.rb"] - ["test/ruby_lsp_rails/server_test.rb"]
1720
end
1821

19-
task default: [:"db:setup", :test]
22+
Rake::TestTask.new(:server_test) do |t|
23+
t.libs << "test"
24+
t.libs << "lib"
25+
t.test_files = ["test/ruby_lsp_rails/server_test.rb"]
26+
end
27+
28+
task default: [:"db:setup", :test, :server_test]

sorbet/rbi/shims/server_test.rbi

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# typed: strict
2+
# frozen_string_literal: true
3+
4+
module RubyLsp
5+
module Rails
6+
class Server
7+
# We need this since RBS doesn't yet have a replacement for T.unsafe()
8+
def print_it!; end
9+
end
10+
end
11+
end

test/ruby_lsp_rails/runner_client_test.rb

+24-10
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,30 @@ class RunnerClientTest < ActiveSupport::TestCase
3333

3434
test "#model returns information for the requested model" do
3535
# These columns are from the schema in the dummy app: test/dummy/db/schema.rb
36-
columns = [
37-
["id", "integer", nil, false],
38-
["first_name", "string", "", true],
39-
["last_name", "string", nil, true],
40-
["age", "integer", "0", true],
41-
["created_at", "datetime", nil, false],
42-
["updated_at", "datetime", nil, false],
43-
["country_id", "integer", nil, false],
44-
["active", "boolean", "1", false],
45-
]
36+
# The default values behavior changed in https://github.com/rails/rails/pull/54683
37+
columns = if Gem::Version.new(::Rails.version) < Gem::Version.new("8.1.0.alpha")
38+
[
39+
["id", "integer", nil, false],
40+
["first_name", "string", "", true],
41+
["last_name", "string", nil, true],
42+
["age", "integer", "0", true],
43+
["created_at", "datetime", nil, false],
44+
["updated_at", "datetime", nil, false],
45+
["country_id", "integer", nil, false],
46+
["active", "boolean", "1", false],
47+
]
48+
else
49+
[
50+
["id", "integer", nil, false],
51+
["first_name", "string", "", true],
52+
["last_name", "string", nil, true],
53+
["age", "integer", 0, true],
54+
["created_at", "datetime", nil, false],
55+
["updated_at", "datetime", nil, false],
56+
["country_id", "integer", nil, false],
57+
["active", "boolean", true, false],
58+
]
59+
end
4660
foreign_keys = ["country_id"]
4761
indexes = [{ name: "index_users_on_country_id", columns: ["country_id"], unique: false }]
4862
response = T.must(@client.model("User"))

test/ruby_lsp_rails/server_test.rb

+13-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
11
# typed: true
22
# frozen_string_literal: true
33

4-
require "test_helper"
4+
# Configure Rails Environment
5+
ENV["RAILS_ENV"] = "test"
6+
require_relative "../dummy/config/environment"
7+
8+
require "minitest/autorun"
9+
require "mocha/minitest"
510
require "ruby_lsp/ruby_lsp_rails/server"
611

12+
if defined?(T)
13+
puts "T is defined, indicating that sorbet-runtime was loaded"
14+
puts "This test should run without sorbet-runtime"
15+
exit(1)
16+
end
17+
718
class ServerTest < ActiveSupport::TestCase
819
setup do
920
@stdout = StringIO.new
@@ -246,7 +257,7 @@ def print_it!
246257
end
247258
end
248259

249-
T.unsafe(server).print_it!
260+
server.print_it!
250261

251262
assert_match("Content-Length: 70\r\n\r\n", stderr.string)
252263
assert_match(

0 commit comments

Comments
 (0)