download and fullScreen are imcompatible options

Signed-off-by: Joseph Nuthalapati's avatarJoseph Nuthalapati <[email protected]>
parent 811928a7
......@@ -32,7 +32,7 @@ proc parseArguments(): CommandLineOptions =
proc isValidOptions*(options: Options): bool =
# Check for invalid combinations of options
var invalidCombinations = [("musicOnly", "fullScreen")]
var invalidCombinations = [("musicOnly", "fullScreen"), ("download", "fullScreen")]
for combination in invalidCombinations:
if options[combination[0]] and options[combination[1]]:
stderr.writeLine fmt"Incompatible options provided: {combination[0]} and {combination[1]}"
......@@ -13,7 +13,15 @@ suite "Playing direct links":
check(sanitizeURL("\\?v\\=QOEMv0S8AcA") == expected)
test "validate options":
let invalidOptions = to_table({"musicOnly": true, "feelingLucky": false, "fullScreen": true, "download": false})
check(not isValidOptions(invalidOptions))
let validOptions = to_table({"musicOnly": false, "feelingLucky": true, "fullScreen": true, "download": true})
let invalidOptionsList = [
to_table({"musicOnly": true, "feelingLucky": false, "fullScreen": true, "download": false}),
to_table({"musicOnly": false, "feelingLucky": true, "fullScreen": true, "download": true})
for invalidOptions in invalidOptionsList:
check(not isValidOptions(invalidOptions))
let validOptionsList = [
to_table({"musicOnly": false, "feelingLucky": true, "fullScreen": false, "download": true}),
to_table({"musicOnly": false, "feelingLucky": true, "fullScreen": true, "download": false})
for validOptions in validOptionsList:
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment