Fix tests for Basic JavaScript: Write Reusable JavaScript with Functions (#34345)
* Fix tests - fix original log() method restoration - fix case that other userscripts(or extensions) can affect console output and therefore can ruin the test * Update curriculum/challenges/english/02-javascript-algorithms-and-data-structures/basic-javascript/write-reusable-javascript-with-functions.english.md allow function calling without semicolon Co-Authored-By: T1mL3arn <T1mL3arn@users.noreply.github.com>
This commit is contained in:
		
				
					committed by
					
						 The Coding Aviator
						The Coding Aviator
					
				
			
			
				
	
			
			
			
						parent
						
							0b964091c9
						
					
				
				
					commit
					cab064a183
				
			| @@ -28,9 +28,9 @@ tests: | |||||||
|   - text: <code>reusableFunction</code> should be a function |   - text: <code>reusableFunction</code> should be a function | ||||||
|     testString: assert(typeof reusableFunction === 'function', '<code>reusableFunction</code> should be a function'); |     testString: assert(typeof reusableFunction === 'function', '<code>reusableFunction</code> should be a function'); | ||||||
|   - text: <code>reusableFunction</code> should output "Hi World" to the dev console |   - text: <code>reusableFunction</code> should output "Hi World" to the dev console | ||||||
|     testString: assert("Hi World" === logOutput, '<code>reusableFunction</code> should output "Hi World" to the dev console'); |     testString: assert(hiWorldWasLogged, '<code>reusableFunction</code> should output "Hi World" to the dev console'); | ||||||
|   - text: Call <code>reusableFunction</code> after you define it |   - text: Call <code>reusableFunction</code> after you define it | ||||||
|     testString: assert(/^\s*reusableFunction\(\)\s*;/m.test(code), 'Call <code>reusableFunction</code> after you define it'); |     testString: assert(/^\s*reusableFunction\(\)\s*/m.test(code), 'Call <code>reusableFunction</code> after you define it'); | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| @@ -60,10 +60,12 @@ ourReusableFunction(); | |||||||
|  |  | ||||||
| ```js | ```js | ||||||
| var logOutput = ""; | var logOutput = ""; | ||||||
| var originalConsole = console | var originalConsole = console; | ||||||
|  | var nativeLog = console.log; | ||||||
|  | var hiWorldWasLogged = false; | ||||||
| function capture() { | function capture() { | ||||||
|     var nativeLog = console.log; |  | ||||||
|     console.log = function (message) { |     console.log = function (message) { | ||||||
|  |         if(message === 'Hi World')  hiWorldWasLogged = true; | ||||||
|         if(message && message.trim) logOutput = message.trim(); |         if(message && message.trim) logOutput = message.trim(); | ||||||
|         if(nativeLog.apply) { |         if(nativeLog.apply) { | ||||||
|           nativeLog.apply(originalConsole, arguments); |           nativeLog.apply(originalConsole, arguments); | ||||||
| @@ -75,7 +77,7 @@ function capture() { | |||||||
| } | } | ||||||
|  |  | ||||||
| function uncapture() { | function uncapture() { | ||||||
|   console.log = originalConsole.log; |   console.log = nativeLog; | ||||||
| } | } | ||||||
|  |  | ||||||
| capture(); | capture(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user