Skip to content

Commit b9db613

Browse files
committed
Add unit tests for JS::RequireRemote::URLResolver
1 parent 45755c4 commit b9db613

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed

packages/npm-packages/ruby-wasm-wasi/test/test_unit.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@
88
require_relative "./unit/test_array"
99
require_relative "./unit/test_hash"
1010
require_relative "./unit/test_nil_class"
11+
require_relative "./unit/require_remote/url_resolver"
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
require "test-unit"
2+
require "js"
3+
require "js/require_remote"
4+
5+
class TestURLResolver < Test::Unit::TestCase
6+
def test_get_location
7+
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com")
8+
script_location = url_resolver.get_location("foo.rb")
9+
assert_equal "https://example.com/foo.rb", script_location.url.to_s
10+
assert_equal "foo.rb", script_location.filename
11+
end
12+
13+
def test_get_location_with_relative_path
14+
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com")
15+
script_location = url_resolver.get_location("./foo.rb")
16+
assert_equal "https://example.com/foo.rb", script_location.url.to_s
17+
assert_equal "./foo.rb", script_location.filename
18+
end
19+
20+
def test_get_location_with_relative_path_and_filename
21+
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com/bar.rb")
22+
script_location = url_resolver.get_location("./foo.rb")
23+
assert_equal "https://example.com/foo.rb", script_location.url.to_s
24+
assert_equal "./foo.rb", script_location.filename
25+
end
26+
27+
def test_get_location_with_relative_path_and_filename_without_extension
28+
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com/bar")
29+
script_location = url_resolver.get_location("./foo")
30+
assert_equal "https://example.com/foo.rb", script_location.url.to_s
31+
assert_equal "./foo.rb", script_location.filename
32+
end
33+
34+
def test_get_location_with_relative_path_and_directory
35+
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com/bar/")
36+
script_location = url_resolver.get_location("./foo.rb")
37+
assert_equal "https://example.com/bar/foo.rb", script_location.url.to_s
38+
assert_equal "./foo.rb", script_location.filename
39+
end
40+
41+
def test_get_location_with_backward_relative_path
42+
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com/bar/")
43+
script_location = url_resolver.get_location("../foo.rb")
44+
assert_equal "https://example.com/foo.rb", script_location.url.to_s
45+
assert_equal "../foo.rb", script_location.filename
46+
end
47+
48+
def test_get_location_with_backward_relative_path_and_filename
49+
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com/baz.rb")
50+
script_location = url_resolver.get_location("../foo.rb")
51+
assert_equal "https://example.com/foo.rb", script_location.url.to_s
52+
assert_equal "../foo.rb", script_location.filename
53+
end
54+
55+
def test_push_and_pop
56+
url_resolver = JS::RequireRemote::URLResolver.new("https://example.com")
57+
url_resolver.push("https://example.com/foo/bar.rb")
58+
script_location = url_resolver.get_location("./baz.rb")
59+
assert_equal "https://example.com/foo/baz.rb", script_location.url.to_s
60+
assert_equal "./baz.rb", script_location.filename
61+
url_resolver.pop
62+
script_location = url_resolver.get_location("./baz.rb")
63+
assert_equal "https://example.com/baz.rb", script_location.url.to_s
64+
assert_equal "./baz.rb", script_location.filename
65+
end
66+
end

0 commit comments

Comments
 (0)