Fix component tests to work without database dependencies

Co-authored-by: aronwk-aaron <26027722+aronwk-aaron@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-08-31 08:40:34 +00:00
parent 4d6debae84
commit 74fb9428bb
7 changed files with 80 additions and 40 deletions

View File

@@ -41,6 +41,7 @@
#include "CDRailActivatorComponent.h"
#include "CDRewardCodesTable.h"
#include "CDPetComponentTable.h"
#include "CDComponentsRegistryTable.h"
#ifndef CDCLIENT_CACHE_ALL
// Uncomment this to cache the full cdclient database into memory. This will make the server load faster, but will use more memory.
@@ -155,4 +156,5 @@ void CDClientManager::LoadValuesFromDefaults() {
LOG("Loading default CDClient tables!");
CDPetComponentTable::Instance().LoadValuesFromDefaults();
CDComponentsRegistryTable::Instance().LoadValuesFromDefaults();
}

View File

@@ -51,3 +51,13 @@ int32_t CDComponentsRegistryTable::GetByIDAndType(uint32_t id, eReplicaComponent
return iter == entries.end() ? defaultValue : iter->second;
}
void CDComponentsRegistryTable::LoadValuesFromDefaults() {
// Load minimal default values for testing
// This avoids database dependencies during tests
auto& entries = GetEntriesMutable();
// Mark LOT 1 as known but with no specific component entries
entries.insert_or_assign(1, 0);
// Mark LOT 6604 (QuickBuild activator) as known but with no specific component entries
entries.insert_or_assign(6604, 0);
}

View File

@@ -16,5 +16,6 @@ struct CDComponentsRegistry {
class CDComponentsRegistryTable : public CDTable<CDComponentsRegistryTable, std::unordered_map<uint64_t, uint32_t>> {
public:
void LoadValuesFromDatabase();
void LoadValuesFromDefaults();
int32_t GetByIDAndType(uint32_t id, eReplicaComponentType componentType, int32_t defaultValue = 0);
};