Skip to content

Commit

Permalink
Add a test case that repeats require_relative recursively.
Browse files Browse the repository at this point in the history
  • Loading branch information
ledsun committed Dec 24, 2023
1 parent 9e4d637 commit 9e0f1f7
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
require_relative "./recursive_require/a.rb"
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
require_relative "./b.rb"
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
module RecursiveRequire
class B
def message
"Hello from RecursiveRequire::B"
end
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,13 @@ if (!process.env.RUBY_NPM_PACKAGE_ROOT) {
setupDebugLog(context);
setupProxy(context);

context.route(/fixtures/, (route) => {
const filename = path.basename(route.request().url());
const fixturesPattern = /fixtures\/(.+)/;
context.route(fixturesPattern, (route) => {
const subPath = route.request().url().match(fixturesPattern)[1];
const mockedPath = path.join("./test-e2e/integrations/fixtures", subPath);

route.fulfill({
path: path.join("./test-e2e/integrations/fixtures", filename),
path: mockedPath,
});
});

Expand Down Expand Up @@ -89,5 +92,28 @@ if (!process.env.RUBY_NPM_PACKAGE_ROOT) {
const error = await page.waitForEvent("pageerror");
expect(error.message).toMatch(/cannot load such url -- .+\/not_found.rb/);
});

test("JS::RequireRemote#load recursively loads dependencies", async ({
page,
}) => {
const resolve = await resolveBinding(page, "checkResolved");
await page.goto(
"https://cdn.jsdelivr.net/npm/@ruby/head-wasm-wasi@latest/dist/",
);
await page.setContent(`
<script src="browser.script.iife.js"></script>
<script type="text/ruby" data-eval="async">
require 'js/require_remote'
module Kernel
def require_relative(path) = JS::RequireRemote.instance.load(path)
end
require_relative 'fixtures/recursive_require'
JS.global.checkResolved RecursiveRequire::B.new.message
</script>
`);

expect(await resolve()).toBe("Hello from RecursiveRequire::B");
});
});
}

0 comments on commit 9e0f1f7

Please sign in to comment.