|
6 | 6 | import unittest, os, strutils, strformat, json, sets
|
7 | 7 | import testscommon, nimblepkg/displaymessages, nimblepkg/paths
|
8 | 8 |
|
9 |
| -from nimblepkg/common import cd |
| 9 | +from nimblepkg/common import cd, getLinkFileName, getLinkFileDir |
10 | 10 | from nimblepkg/developfile import developFileName, pkgFoundMoreThanOnceMsg
|
11 | 11 | from nimblepkg/version import newVersion, parseVersionRange
|
12 | 12 | from nimblepkg/nimbledatafile import nimbleDataFileName, NimbleDataJsonKeys
|
@@ -81,6 +81,33 @@ suite "develop feature":
|
81 | 81 | check lines.inLinesOrdered(pkgSetupInDevModeMsg(
|
82 | 82 | pkgBName, installDir / pkgBName))
|
83 | 83 |
|
| 84 | + test "can develop global": |
| 85 | + cleanDir installDir |
| 86 | + usePackageListFile &"develop/{pkgListFileName}": |
| 87 | + let dependencyPath = getCurrentDir() / "develop" / "dependency" |
| 88 | + |
| 89 | + # Check that a link file can be created for a global develop dependency. |
| 90 | + cd dependencyPath: |
| 91 | + let (output, exitCode) = execNimble("develop", "--global") |
| 92 | + check exitCode == QuitSuccess |
| 93 | + var lines = output.processOutput |
| 94 | + let linkFilePath = installDir / "links" / depName.getLinkFileDir / |
| 95 | + depName.getLinkFileName |
| 96 | + check lines.inLinesOrdered(pkgLinkFileSavedMsg(linkFilePath)) |
| 97 | + check lines.inLinesOrdered(pkgSetupInDevModeMsg( |
| 98 | + depName, dependencyPath)) |
| 99 | + check linkFilePath.fileExists |
| 100 | + let linkFileLines = linkFilePath.readFile.split('\n') |
| 101 | + let expectedLinkNimbleFilePath = dependencyPath / depName & ".nimble" |
| 102 | + check linkFileLines[0] == expectedLinkNimbleFilePath |
| 103 | + check linkFileLines[1] == dependencyPath |
| 104 | + |
| 105 | + # Check that a link file can be used for finding the dependency. |
| 106 | + cd "develop/dependent": |
| 107 | + cleanFile dependentPkgName.addFileExt(ExeExt) |
| 108 | + let (_, exitCode) = execNimble("run") |
| 109 | + check exitCode == QuitSuccess |
| 110 | + |
84 | 111 | test "cannot remove package with develop reverse dependency":
|
85 | 112 | cdCleanDir installDir:
|
86 | 113 | usePackageListFile &"../develop/{pkgListFileName}":
|
|
0 commit comments