test+fix: add basic tests and fix issues with it

This commit is contained in:
flow
2022-04-17 11:40:41 -03:00
committed by flow
parent 4439666e67
commit d7f6b36990
10 changed files with 168 additions and 39 deletions

View File

@ -20,6 +20,8 @@
#include <FileSystem.h>
#include <QDebug>
#include "Application.h"
#include "MetadataHandler.h"
namespace {
@ -174,8 +176,7 @@ void Mod::finishResolvingWithDetails(std::shared_ptr<ModDetails> details)
m_resolved = true;
m_localDetails = details;
if (fromMetadata() && m_temp_metadata->isValid()) {
m_localDetails->metadata = m_temp_metadata;
m_temp_metadata.reset();
if (fromMetadata() && m_temp_metadata->isValid() && m_localDetails.get()) {
m_localDetails->metadata.swap(m_temp_metadata);
}
}

View File

@ -20,7 +20,6 @@
#include <QList>
#include "ModDetails.h"
#include "minecraft/mod/MetadataHandler.h"
class Mod
{

View File

@ -34,8 +34,14 @@ void ModFolderLoadTask::getFromMetadata()
if (entry == "." || entry == "..")
continue;
entry.chop(5); // Remove .toml at the end
Mod mod(m_mods_dir, Metadata::get(m_index_dir, entry));
auto metadata = Metadata::get(m_index_dir, entry);
// TODO: Don't simply return. Instead, show to the user that the metadata is there, but
// it's not currently 'installed' (i.e. there's no JAR file yet).
if(!metadata.isValid()){
return;
}
Mod mod(m_mods_dir, metadata);
m_result->mods[mod.internal_id()] = mod;
}
}