diff --git a/src/lune/globals/require/context.rs b/src/lune/globals/require/context.rs index 0c95d80..7f018c6 100644 --- a/src/lune/globals/require/context.rs +++ b/src/lune/globals/require/context.rs @@ -70,7 +70,7 @@ impl RequireContext { CWD.join(&rel_path) }; - Ok((rel_path, abs_path)) + Ok((abs_path, rel_path)) } /** diff --git a/src/tests.rs b/src/tests.rs index f4af887..fad6026 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -95,6 +95,7 @@ create_tests! { require_nested: "require/tests/nested", require_parents: "require/tests/parents", require_siblings: "require/tests/siblings", + require_state: "require/tests/state", global_g_table: "globals/_G", global_version: "globals/_VERSION", diff --git a/tests/require/tests/state.luau b/tests/require/tests/state.luau new file mode 100644 index 0000000..d1b2b46 --- /dev/null +++ b/tests/require/tests/state.luau @@ -0,0 +1,14 @@ +-- the idea of this test is that state_module stores some state in one of its local +-- variable +local state_module = require("./state_module") + +-- we confirm that without anything happening, the initial value is what we expect +assert(state_module.state == 10) + +-- this second file also requires state_module and calls a function that changes the local +-- state to 11 +require("./state_second") + +-- with correct module caching, we should see the change done in state_secone reflected +-- here +assert(state_module.state == 11) diff --git a/tests/require/tests/state_module.luau b/tests/require/tests/state_module.luau new file mode 100644 index 0000000..9b6135e --- /dev/null +++ b/tests/require/tests/state_module.luau @@ -0,0 +1,9 @@ +local M = {} + +M.state = 10 + +function M.set_state(n: number) + M.state = n +end + +return M diff --git a/tests/require/tests/state_second.luau b/tests/require/tests/state_second.luau new file mode 100644 index 0000000..24ca3a4 --- /dev/null +++ b/tests/require/tests/state_second.luau @@ -0,0 +1,5 @@ +local state_module = require("./state_module") + +state_module.set_state(11) + +return {}