You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.8 KiB
54 lines
1.8 KiB
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(); |
|
}); |
|
});
|
|
|