From 64d5fb2f1058fda6112f3b213fcadb4046d1ce5b Mon Sep 17 00:00:00 2001 From: Xurkon Date: Fri, 5 Jun 2026 20:51:42 -0500 Subject: [PATCH] fix: keep learner mode live --- .../DatabaseTab/QuestieOptionsDatabase.lua | 3 +++ Modules/QuestieLearner.lua | 4 ++++ Tests/QuestieLearnerDataSourceMode_spec.lua | 21 +++++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/Modules/Options/DatabaseTab/QuestieOptionsDatabase.lua b/Modules/Options/DatabaseTab/QuestieOptionsDatabase.lua index 7a27ec8..b0c8f8d 100644 --- a/Modules/Options/DatabaseTab/QuestieOptionsDatabase.lua +++ b/Modules/Options/DatabaseTab/QuestieOptionsDatabase.lua @@ -267,6 +267,9 @@ function QuestieOptions.tabs.database:Initialize() if Questie.dbLearner.global and Questie.dbLearner.global.settings then Questie.dbLearner.global.settings.dataSourceMode = v Questie.dbLearner.global.settings.prioritizeMyData = (v ~= "static" and v ~= "none") + if v == "learner" then + Questie.dbLearner.global.settings.enabled = true + end ApplyLearnerMode() end end, diff --git a/Modules/QuestieLearner.lua b/Modules/QuestieLearner.lua index 7ccc320..7f187ee 100644 --- a/Modules/QuestieLearner.lua +++ b/Modules/QuestieLearner.lua @@ -510,6 +510,10 @@ end function QuestieLearner:ApplyDataSourceMode() if not EnsureLearnedData() then return end + local settings = Questie.dbLearner and Questie.dbLearner.global and Questie.dbLearner.global.settings + if settings and GetDataSourceMode() == "learner" and settings.enabled == false then + settings.enabled = true + end CaptureStaticOverrideSnapshot() RestoreStaticOverridesForMode() self:InjectLearnedData() diff --git a/Tests/QuestieLearnerDataSourceMode_spec.lua b/Tests/QuestieLearnerDataSourceMode_spec.lua index 932af56..11c9b58 100644 --- a/Tests/QuestieLearnerDataSourceMode_spec.lua +++ b/Tests/QuestieLearnerDataSourceMode_spec.lua @@ -57,3 +57,24 @@ describe("QuestieLearner missing base DB fallback", function() assert.is_true(QuestieLearner:IsEnabled()) end) end) + +describe("QuestieLearner learner mode activation", function() + local QuestieLearner + + before_each(function() + dofile("Tests/wow_api_mock.lua") + Questie.dbLearner.global.settings.enabled = false + Questie.dbLearner.global.settings.dataSourceMode = "learner" + QuestieDB.baseDatabaseMissing = false + QuestieDB.IsBaseDatabaseMissing = function() + return false + end + QuestieLearner = dofile("Modules/QuestieLearner.lua") + end) + + it("re-enables learner recording when learner mode is applied", function() + QuestieLearner:ApplyDataSourceMode() + assert.is_true(Questie.dbLearner.global.settings.enabled) + assert.is_true(QuestieLearner:IsEnabled()) + end) +end)