Skip to content

Commit

Permalink
Add unit tests for JS::RequireRemote::URLResolver
Browse files Browse the repository at this point in the history
  • Loading branch information
ledsun committed Dec 26, 2023
1 parent 45755c4 commit b9db613
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 0 deletions.
1 change: 1 addition & 0 deletions packages/npm-packages/ruby-wasm-wasi/test/test_unit.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@
require_relative "./unit/test_array"
require_relative "./unit/test_hash"
require_relative "./unit/test_nil_class"
require_relative "./unit/require_remote/url_resolver"
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
require "test-unit"
require "js"
require "js/require_remote"

class TestURLResolver < Test::Unit::TestCase
def test_get_location
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com")
script_location = url_resolver.get_location("foo.rb")
assert_equal "https://example.com/foo.rb", script_location.url.to_s
assert_equal "foo.rb", script_location.filename
end

def test_get_location_with_relative_path
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com")
script_location = url_resolver.get_location("./foo.rb")
assert_equal "https://example.com/foo.rb", script_location.url.to_s
assert_equal "./foo.rb", script_location.filename
end

def test_get_location_with_relative_path_and_filename
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com/bar.rb")
script_location = url_resolver.get_location("./foo.rb")
assert_equal "https://example.com/foo.rb", script_location.url.to_s
assert_equal "./foo.rb", script_location.filename
end

def test_get_location_with_relative_path_and_filename_without_extension
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com/bar")
script_location = url_resolver.get_location("./foo")
assert_equal "https://example.com/foo.rb", script_location.url.to_s
assert_equal "./foo.rb", script_location.filename
end

def test_get_location_with_relative_path_and_directory
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com/bar/")
script_location = url_resolver.get_location("./foo.rb")
assert_equal "https://example.com/bar/foo.rb", script_location.url.to_s
assert_equal "./foo.rb", script_location.filename
end

def test_get_location_with_backward_relative_path
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com/bar/")
script_location = url_resolver.get_location("../foo.rb")
assert_equal "https://example.com/foo.rb", script_location.url.to_s
assert_equal "../foo.rb", script_location.filename
end

def test_get_location_with_backward_relative_path_and_filename
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com/baz.rb")
script_location = url_resolver.get_location("../foo.rb")
assert_equal "https://example.com/foo.rb", script_location.url.to_s
assert_equal "../foo.rb", script_location.filename
end

def test_push_and_pop
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com")
url_resolver.push("https://example.com/foo/bar.rb")
script_location = url_resolver.get_location("./baz.rb")
assert_equal "https://example.com/foo/baz.rb", script_location.url.to_s
assert_equal "./baz.rb", script_location.filename
url_resolver.pop
script_location = url_resolver.get_location("./baz.rb")
assert_equal "https://example.com/baz.rb", script_location.url.to_s
assert_equal "./baz.rb", script_location.filename
end
end

0 comments on commit b9db613

Please sign in to comment.