Newer
Older
dub_jkp / test / interactive-remove.sh
  1. #!/usr/bin/env bash
  2.  
  3. . $(dirname "${BASH_SOURCE[0]}")/common.sh
  4.  
  5. # This test messes with the user's package directory
  6. # Hence it's a pretty bad test, but we need it.
  7. # Ideally, we should not have this run by default / run it in a container.
  8. # In the meantime, in order to make it pass on developer's machines,
  9. # we need to nuke every `dub` version in the user cache...
  10. $DUB remove dub -n || true
  11.  
  12. $DUB fetch dub@1.9.0 && [ -d $HOME/.dub/packages/dub-1.9.0/dub ]
  13. $DUB fetch dub@1.10.0 && [ -d $HOME/.dub/packages/dub-1.10.0/dub ]
  14.  
  15. echo 1 | $DUB remove dub | tr -d '\n' | grep --ignore-case 'select.*1\.9\.0.*1\.10\.0.*'
  16. if [ -d $HOME/.dub/packages/dub-1.9.0/dub ]; then
  17. die $LINENO 'Failed to remove dub-1.9.0'
  18. fi
  19.  
  20. $DUB fetch dub@1.9.0 && [ -d $HOME/.dub/packages/dub-1.9.0/dub ]
  21. # EOF aborts remove
  22. echo -xn '' | $DUB remove dub
  23. if [ ! -d $HOME/.dub/packages/dub-1.9.0/dub ] || [ ! -d $HOME/.dub/packages/dub-1.10.0/dub ]; then
  24. die $LINENO 'Aborted dub still removed a package'
  25. fi
  26.  
  27. # validates input
  28. echo -e 'abc\n4\n-1\n3' | $DUB remove dub
  29. if [ -d $HOME/.dub/packages/dub-1.9.0/dub ] || [ -d $HOME/.dub/packages/dub-1.10.0/dub ]; then
  30. die $LINENO 'Failed to remove all version of dub'
  31. fi
  32.  
  33. $DUB fetch dub@1.9.0 && [ -d $HOME/.dub/packages/dub-1.9.0/dub ]
  34. $DUB fetch dub@1.10.0 && [ -d $HOME/.dub/packages/dub-1.10.0/dub ]
  35. # is non-interactive with `--version=<version-spec>`
  36. $DUB remove dub@1.9.0
  37. $DUB remove dub@1.10.0
  38. if [ -d $HOME/.dub/packages/dub-1.9.0/dub ] || [ -d $HOME/.dub/packages/dub-1.10.0/dub ]; then
  39. die $LINENO 'Failed to non-interactively remove specified versions'
  40. fi