Test: Add test cases for symbolic link add/pull/push actions
This commit is contained in:
@@ -621,3 +621,58 @@ TEST_CASE(PullSystemDotfiles)
|
||||
|
||||
std::filesystem::remove_all(Config::the().workingDirectory() / "etc");
|
||||
}
|
||||
|
||||
TEST_CASE(AddSymlinkDotfiles)
|
||||
{
|
||||
std::filesystem::path fileInHome = homeDirectory / "__the-add-file";
|
||||
std::filesystem::path symlinkFileName = "__the-add-symlink";
|
||||
std::filesystem::path symlinkInHome = homeDirectory / symlinkFileName;
|
||||
|
||||
createTestDotfiles({ fileInHome }, { "the file contents" });
|
||||
std::filesystem::create_symlink(fileInHome, symlinkInHome);
|
||||
|
||||
Dotfile::the().add({ symlinkInHome });
|
||||
|
||||
EXPECT(std::filesystem::is_symlink(symlinkFileName));
|
||||
EXPECT_EQ(std::filesystem::read_symlink(symlinkFileName).string(), fileInHome);
|
||||
EXPECT_EQ(Util::File(symlinkFileName).data(), "the file contents");
|
||||
|
||||
removeTestDotfiles({ symlinkInHome, fileInHome });
|
||||
}
|
||||
|
||||
TEST_CASE(PullSymlinkDotfiles)
|
||||
{
|
||||
std::filesystem::path fileInHome = homeDirectory / "__the-pull-file";
|
||||
std::filesystem::path symlinkFileName = "__the-pull-symlink";
|
||||
std::filesystem::path symlinkInHome = homeDirectory / symlinkFileName;
|
||||
|
||||
createTestDotfiles({ fileInHome }, { "the file contents" });
|
||||
std::filesystem::create_symlink(fileInHome, symlinkInHome);
|
||||
std::filesystem::create_symlink("doesnt-exist", symlinkFileName);
|
||||
|
||||
Dotfile::the().pull({ symlinkFileName });
|
||||
|
||||
EXPECT(std::filesystem::is_symlink(symlinkFileName));
|
||||
EXPECT_EQ(std::filesystem::read_symlink(symlinkFileName).string(), fileInHome);
|
||||
EXPECT_EQ(Util::File(symlinkFileName).data(), "the file contents");
|
||||
|
||||
removeTestDotfiles({ symlinkInHome, fileInHome });
|
||||
}
|
||||
|
||||
TEST_CASE(PushSymlinkDotfiles)
|
||||
{
|
||||
std::filesystem::path fileInHome = homeDirectory / "__the-push-file";
|
||||
std::filesystem::path symlinkFileName = "__the-push-symlink";
|
||||
std::filesystem::path symlinkInHome = homeDirectory / symlinkFileName;
|
||||
|
||||
createTestDotfiles({ fileInHome }, { "the file contents" });
|
||||
std::filesystem::create_symlink(fileInHome, symlinkFileName);
|
||||
|
||||
Dotfile::the().push({ symlinkFileName });
|
||||
|
||||
EXPECT(std::filesystem::is_symlink(symlinkInHome));
|
||||
EXPECT_EQ(std::filesystem::read_symlink(symlinkInHome).string(), fileInHome);
|
||||
EXPECT_EQ(Util::File(symlinkInHome).data(), "the file contents");
|
||||
|
||||
removeTestDotfiles({ symlinkInHome, fileInHome });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user