Test: Add test case for selectively commenting
This commit is contained in:
@@ -223,6 +223,101 @@ TEST_CASE(PushDotfilesWithExcludePath)
|
|||||||
removeTestDotfiles(fileNames);
|
removeTestDotfiles(fileNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE(PushDotfilesSelectivelyComment)
|
||||||
|
{
|
||||||
|
std::vector<std::string> fileNames = {
|
||||||
|
"__test-file-1",
|
||||||
|
"__test-file-2",
|
||||||
|
"__test-file-3",
|
||||||
|
"__test-file-4",
|
||||||
|
"__test-file-5",
|
||||||
|
"__test-file-6",
|
||||||
|
"__test-file-7",
|
||||||
|
};
|
||||||
|
|
||||||
|
auto distro = Machine::the().distroId();
|
||||||
|
auto hostname = Machine::the().hostname();
|
||||||
|
auto username = Machine::the().username();
|
||||||
|
std::string placeholder = "@@@@";
|
||||||
|
|
||||||
|
std::vector<std::string> fileContents = {
|
||||||
|
"# >>> distro=" + distro + " hostname=" + hostname + " user=" + username + R"(
|
||||||
|
# this should be uncommented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
"# >>> distro=" + placeholder + " hostname=" + hostname + " user=" + username + R"(
|
||||||
|
# this should remain commented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
"# >>> distro=" + distro + " hostname=" + placeholder + " user=" + username + R"(
|
||||||
|
# this should remain commented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
"# >>> distro=" + distro + " hostname=" + hostname + " user=" + placeholder + R"(
|
||||||
|
this should be commented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
" # >>> distro=" + distro + R"(
|
||||||
|
# this should be uncommented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
" # >>> user=" + username + R"(
|
||||||
|
# this should be uncommented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
" # >>> hostname=" + hostname + R"(
|
||||||
|
this should remain uncommented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
};
|
||||||
|
|
||||||
|
std::vector<std::string> pushedFileContents = {
|
||||||
|
"# >>> distro=" + distro + " hostname=" + hostname + " user=" + username + R"(
|
||||||
|
this should be uncommented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
"# >>> distro=" + placeholder + " hostname=" + hostname + " user=" + username + R"(
|
||||||
|
# this should remain commented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
"# >>> distro=" + distro + " hostname=" + placeholder + " user=" + username + R"(
|
||||||
|
# this should remain commented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
"# >>> distro=" + distro + " hostname=" + hostname + " user=" + placeholder + R"(
|
||||||
|
# this should be commented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
" # >>> distro=" + distro + R"(
|
||||||
|
this should be uncommented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
" # >>> user=" + username + R"(
|
||||||
|
this should be uncommented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
" # >>> hostname=" + hostname + R"(
|
||||||
|
this should remain uncommented
|
||||||
|
# <<<
|
||||||
|
)",
|
||||||
|
};
|
||||||
|
|
||||||
|
createTestDotfiles(fileNames, fileContents);
|
||||||
|
|
||||||
|
Dotfile::the().push(fileNames);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < fileNames.size(); ++i) {
|
||||||
|
const auto& file = fileNames.at(i);
|
||||||
|
VERIFY(std::filesystem::exists(file), continue);
|
||||||
|
VERIFY(std::filesystem::exists(homeDirectory / file), continue);
|
||||||
|
|
||||||
|
Util::File lhs(homeDirectory / file);
|
||||||
|
EXPECT_EQ(lhs.data(), pushedFileContents.at(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
removeTestDotfiles(fileNames);
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE(AddSystemDotfiles)
|
TEST_CASE(AddSystemDotfiles)
|
||||||
{
|
{
|
||||||
VERIFY(geteuid() == 0, return);
|
VERIFY(geteuid() == 0, return);
|
||||||
|
|||||||
Reference in New Issue
Block a user