diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-04-05 16:43:02 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-04-05 16:43:02 +0530 |
| commit | be672286b3fa1056560ad1216331731751a16685 (patch) | |
| tree | 2fade9328c554bc427028b33a973fe573f4e90db | |
| parent | b6526785478ea8ba70ddd119f1e3e53a892d4a22 (diff) | |
| download | null-browser-be672286b3fa1056560ad1216331731751a16685.tar.gz null-browser-be672286b3fa1056560ad1216331731751a16685.zip | |
Replace internals register_event spec with web.event.add_listener
| -rw-r--r-- | lua/null-browser/api.lua | 4 | ||||
| -rw-r--r-- | spec/LuaRuntimeSpec.cpp | 39 |
2 files changed, 28 insertions, 15 deletions
diff --git a/lua/null-browser/api.lua b/lua/null-browser/api.lua index 1be7589..f6ff5e6 100644 --- a/lua/null-browser/api.lua +++ b/lua/null-browser/api.lua @@ -12,8 +12,8 @@ web.event = web.event or {} web.event.add_listener = function(events, opts) opts = shallow_copy(opts or {}) - if type(events) ~= "table" then events = { events } end + if type(events) == "string" then events = { events } end opts.events = events or {} - __internals.register_event(opts) + return __internals.register_event(opts) end diff --git a/spec/LuaRuntimeSpec.cpp b/spec/LuaRuntimeSpec.cpp index 6124d93..d31519c 100644 --- a/spec/LuaRuntimeSpec.cpp +++ b/spec/LuaRuntimeSpec.cpp @@ -132,15 +132,32 @@ private slots: } } - void test_internals_register_event() { + void test_web_event_add_event() { context("when events, patterns and callback are specified correctly"); it("returns true and registers event") { auto &lua = LuaRuntime::instance(); QSignalSpy evaluation_completed_spy(&lua, &LuaRuntime::evaluation_completed); lua.evaluate(R"( - return __internals.register_event({ - events = { 'Hello', 'World' }, + return web.event.add_listener({ 'Hello', 'World' }, { + patterns = { 'p1', 'p2' }, + callback = function() print("Called") end, + }); + )"); + evaluation_completed_spy.wait(); + + QCOMPARE(evaluation_completed_spy.count(), 1); + QVariant result = evaluation_completed_spy.takeFirst().at(0); + QCOMPARE(result, true); + } + + context("when a single event is passed"); + it("returns true and registers event") { + auto &lua = LuaRuntime::instance(); + QSignalSpy evaluation_completed_spy(&lua, &LuaRuntime::evaluation_completed); + + lua.evaluate(R"( + return web.event.add_listener('Hello', { patterns = { 'p1', 'p2' }, callback = function() print("Called") end, }); @@ -158,8 +175,7 @@ private slots: QSignalSpy evaluation_completed_spy(&lua, &LuaRuntime::evaluation_completed); lua.evaluate(R"( - return __internals.register_event({ - events = { 'Hello', 'World' }, + return web.event.add_listener({ 'Hello', 'World' }, { callback = function() print("Called") end, }); )"); @@ -176,7 +192,7 @@ private slots: QSignalSpy evaluation_completed_spy(&lua, &LuaRuntime::evaluation_completed); lua.evaluate(R"( - return __internals.register_event({ + return web.event.add_listener(nil, { patterns = { 'p1', 'p2' }, callback = function() print("Called") end, }); @@ -194,8 +210,7 @@ private slots: QSignalSpy evaluation_completed_spy(&lua, &LuaRuntime::evaluation_completed); lua.evaluate(R"( - return __internals.register_event({ - events = {'Ev'}, + return web.event.add_listener({'Ev'}, { patterns = { 'p1', 'p2' }, }); )"); @@ -207,7 +222,7 @@ private slots: } } - void test_internals_register_event_handler() { + void test_web_event_dispatching() { context("when dispatching a registered event (without pattern)"); it("calls the registered event handler") { auto &lua = LuaRuntime::instance(); @@ -215,16 +230,14 @@ private slots: lua.evaluate(R"( _G.event1_called = false; _G.event1_called_with = nil; - __internals.register_event({ - events = { 'TestEvent1' }, + web.event.add_listener('TestEvent1', { callback = function(opts) _G.event1_called = true _G.event1_called_with = opts end, }); _G.event2_called = false; - __internals.register_event({ - events = { 'TestEvent2' }, + web.event.add_listener('TestEvent2', { callback = function(opts) _G.event2_called = true end, }); )"); |
