|
|
|
open TestFramework;
|
|
|
|
|
|
|
|
let installVersion = version => run([|"install", version|]);
|
|
|
|
let uninstallVersion = version => run([|"uninstall", version|]);
|
|
|
|
|
|
|
|
let isVersionInstalled = version =>
|
|
|
|
run([|"ls"|])
|
|
|
|
|> String.split_on_char('\n')
|
|
|
|
|> List.exists(v => v == "* v" ++ version);
|
|
|
|
|
|
|
|
describe("Uninstall", ({test, _}) => {
|
|
|
|
test("Should be possible to uninstall a specific version", ({expect, _}) => {
|
|
|
|
let version = "6.0.0";
|
|
|
|
let _ = installVersion(version);
|
|
|
|
let response = uninstallVersion(version);
|
|
|
|
expect.string(response).toMatch(
|
|
|
|
".*v" ++ version ++ ".* has correctly been removed.*",
|
|
|
|
);
|
|
|
|
expect.bool(isVersionInstalled(version)).toBeFalse();
|
|
|
|
});
|
|
|
|
test(
|
|
|
|
"Should print out a message if multiple versions match the prefix",
|
|
|
|
({expect, _}) => {
|
|
|
|
let v1 = "6.10.0";
|
|
|
|
let v2 = "6.11.0";
|
|
|
|
let _ = installVersion(v1);
|
|
|
|
let _ = installVersion(v2);
|
|
|
|
let response =
|
|
|
|
uninstallVersion("6")
|
|
|
|
|> String.split_on_char('\n')
|
|
|
|
|> String.concat(" ");
|
|
|
|
expect.string(response).toMatch("multiple versions");
|
|
|
|
expect.string(response).toMatch(" v" ++ v1 ++ " ");
|
|
|
|
expect.string(response).toMatch(" v" ++ v2 ++ " ");
|
|
|
|
expect.bool(isVersionInstalled(v1)).toBeTrue();
|
|
|
|
expect.bool(isVersionInstalled(v2)).toBeTrue();
|
|
|
|
clearTmpDir();
|
|
|
|
});
|
|
|
|
test(
|
|
|
|
"Should be able to uninstall with a prefix if only one version match",
|
|
|
|
({expect, _}) => {
|
|
|
|
let v1 = "6.10.0";
|
|
|
|
let v2 = "6.11.0";
|
|
|
|
let _ = installVersion(v1);
|
|
|
|
let _ = installVersion(v2);
|
|
|
|
let response = uninstallVersion("6.10");
|
|
|
|
expect.string(response).toMatch(
|
|
|
|
".*v" ++ v1 ++ ".* has correctly been removed.*",
|
|
|
|
);
|
|
|
|
expect.bool(isVersionInstalled(v1)).toBeFalse();
|
|
|
|
expect.bool(isVersionInstalled(v2)).toBeTrue();
|
|
|
|
clearTmpDir();
|
|
|
|
});
|
|
|
|
});
|