Fix version checking (#4329)

https://github.com/Neargye/semver

* Use semver library for version downgrade checking

* Add test validating our current version is valid semver
This commit is contained in:
pajlada
2023-01-26 19:22:48 +01:00
committed by GitHub
parent ff9f63c5e0
commit bf5a5b839c
11 changed files with 981 additions and 33 deletions
+42
View File
@@ -0,0 +1,42 @@
#include "singletons/Updates.hpp"
#include "common/Version.hpp"
#include <gtest/gtest.h>
#include <semver/semver.hpp>
using namespace chatterino;
TEST(Updates, MustBeDowngrade)
{
EXPECT_TRUE(Updates::isDowngradeOf("1.0.0", "2.4.5"))
<< "1.0.0 must be a downgrade of 2.4.5";
EXPECT_TRUE(Updates::isDowngradeOf("2.0.0", "2.4.5"))
<< "2.0.0 must be a downgrade of 2.4.5";
EXPECT_TRUE(Updates::isDowngradeOf("2.4.0", "2.4.5"))
<< "2.4.0 must be a downgrade of 2.4.5";
EXPECT_TRUE(Updates::isDowngradeOf("2.4.4-beta", "2.4.5"))
<< "2.4.4-beta must be a downgrade of 2.4.5";
EXPECT_TRUE(Updates::isDowngradeOf("2.4.5-beta", "2.4.5"))
<< "2.4.5-beta must be a downgrade of 2.4.5";
EXPECT_TRUE(Updates::isDowngradeOf("2.4.5-beta.1", "2.4.5-beta.2"))
<< "2.4.5-beta.1 must be a downgrade of 2.4.5-beta.2";
EXPECT_TRUE(Updates::isDowngradeOf("2.4.5-beta", "2.4.5-beta.2"))
<< "2.4.5-beta must be a downgrade of 2.4.5-beta.2";
EXPECT_TRUE(Updates::isDowngradeOf("2.4.5-beta.2", "2.4.6-beta.1"))
<< "2.4.5-beta.2 must be a downgrade of 2.4.6-beta.1";
}
TEST(Updates, MustNotBeDowngrade)
{
EXPECT_FALSE(Updates::isDowngradeOf("2.4.5", "2.4.5"))
<< "2.4.5 must not be a downgrade of 2.4.5";
EXPECT_FALSE(Updates::isDowngradeOf("2.4.5", "2.4.5-beta"))
<< "2.4.5 must not be a downgrade of 2.4.5-beta";
}
TEST(Updates, ValidateCurrentVersion)
{
EXPECT_NO_THROW(auto v = semver::from_string(CHATTERINO_VERSION))
<< "Current version must be valid semver";
}