|  | 
| 22 | 22 | 
 | 
| 23 | 23 | from pontos.testing import temp_directory, temp_file | 
| 24 | 24 | from pontos.version.errors import VersionError | 
| 25 |  | -from pontos.version.javascript import JavaScriptVersionCommand | 
|  | 25 | +from pontos.version.javascript import ( | 
|  | 26 | +    GREENBONE_JS_VERSION_FILE, | 
|  | 27 | +    JavaScriptVersionCommand, | 
|  | 28 | +) | 
| 26 | 29 | from pontos.version.version import Version | 
| 27 | 30 | 
 | 
| 28 | 31 | 
 | 
| @@ -148,6 +151,73 @@ def test_verify_success(self): | 
| 148 | 151 |             cmd = JavaScriptVersionCommand() | 
| 149 | 152 |             cmd.verify_version(Version("22.4")) | 
| 150 | 153 | 
 | 
|  | 154 | +    def test_verify_js_mismatch(self): | 
|  | 155 | +        with patch.object( | 
|  | 156 | +            JavaScriptVersionCommand, | 
|  | 157 | +            "get_current_version", | 
|  | 158 | +            MagicMock(return_value=Version("22.4")), | 
|  | 159 | +        ), patch.object( | 
|  | 160 | +            JavaScriptVersionCommand, | 
|  | 161 | +            "_get_current_js_file_version", | 
|  | 162 | +            MagicMock(return_value=Version("22.5")), | 
|  | 163 | +        ), self.assertRaisesRegex( | 
|  | 164 | +            VersionError, | 
|  | 165 | +            "Provided version 22.4 does not match the current version 22.5 in " | 
|  | 166 | +            "src/version.js.", | 
|  | 167 | +        ): | 
|  | 168 | +            cmd = JavaScriptVersionCommand() | 
|  | 169 | +            cmd.verify_version(Version("22.4")) | 
|  | 170 | + | 
|  | 171 | +    def test_verify_current(self): | 
|  | 172 | +        with patch.object( | 
|  | 173 | +            JavaScriptVersionCommand, | 
|  | 174 | +            "get_current_version", | 
|  | 175 | +            MagicMock(return_value=Version("22.4")), | 
|  | 176 | +        ): | 
|  | 177 | +            cmd = JavaScriptVersionCommand() | 
|  | 178 | +            cmd.verify_version("current") | 
|  | 179 | + | 
|  | 180 | +    def test_verify_current_failure(self): | 
|  | 181 | +        with temp_directory(change_into=True), self.assertRaisesRegex( | 
|  | 182 | +            VersionError, "^.*package.json file not found" | 
|  | 183 | +        ): | 
|  | 184 | +            cmd = JavaScriptVersionCommand() | 
|  | 185 | +            cmd.verify_version("current") | 
|  | 186 | + | 
|  | 187 | +    def test_verify_current_js_version_matches(self): | 
|  | 188 | +        content = '{"name":"foo", "version":"1.2.3"}' | 
|  | 189 | +        js_content = 'const VERSION = "1.2.3";' | 
|  | 190 | + | 
|  | 191 | +        with temp_directory(change_into=True) as temp_dir: | 
|  | 192 | +            package_json = temp_dir / "package.json" | 
|  | 193 | +            package_json.write_text(content, encoding="utf8") | 
|  | 194 | +            js_version_file = temp_dir / GREENBONE_JS_VERSION_FILE | 
|  | 195 | +            js_version_file.parent.mkdir() | 
|  | 196 | +            js_version_file.write_text(js_content, encoding="utf8") | 
|  | 197 | + | 
|  | 198 | +            cmd = JavaScriptVersionCommand() | 
|  | 199 | +            cmd.verify_version("current") | 
|  | 200 | + | 
|  | 201 | +    def test_verify_current_js_mismatch(self): | 
|  | 202 | +        content = '{"name":"foo", "version":"1.2.3"}' | 
|  | 203 | +        js_content = 'const VERSION = "1.2.4";' | 
|  | 204 | + | 
|  | 205 | +        with temp_directory( | 
|  | 206 | +            change_into=True | 
|  | 207 | +        ) as temp_dir, self.assertRaisesRegex( | 
|  | 208 | +            VersionError, | 
|  | 209 | +            "The version 1.2.4 in src/version.js doesn't match the current " | 
|  | 210 | +            "version 1.2.3.", | 
|  | 211 | +        ): | 
|  | 212 | +            package_json = temp_dir / "package.json" | 
|  | 213 | +            package_json.write_text(content, encoding="utf8") | 
|  | 214 | +            js_version_file = temp_dir / GREENBONE_JS_VERSION_FILE | 
|  | 215 | +            js_version_file.parent.mkdir() | 
|  | 216 | +            js_version_file.write_text(js_content, encoding="utf8") | 
|  | 217 | + | 
|  | 218 | +            cmd = JavaScriptVersionCommand() | 
|  | 219 | +            cmd.verify_version("current") | 
|  | 220 | + | 
| 151 | 221 | 
 | 
| 152 | 222 | class ProjectFileJavaScriptVersionCommandTestCase(unittest.TestCase): | 
| 153 | 223 |     def test_project_file_not_found(self): | 
|  | 
0 commit comments