forked from MapComplete/MapComplete
		
	Fix merge behaviour when the value is null
This commit is contained in:
		
							parent
							
								
									9248f264f1
								
							
						
					
					
						commit
						7352a4a41d
					
				
					 2 changed files with 22 additions and 6 deletions
				
			
		
							
								
								
									
										8
									
								
								Utils.ts
									
										
									
									
									
								
							
							
						
						
									
										8
									
								
								Utils.ts
									
										
									
									
									
								
							|  | @ -210,7 +210,9 @@ export class Utils { | |||
|             if (sourceV?.length !== undefined && targetV?.length !== undefined && key.startsWith("+")) { | ||||
|                 target[key] = targetV.concat(sourceV) | ||||
|             } else if (typeof sourceV === "object") { | ||||
|                 if (targetV === undefined) { | ||||
|                 if (sourceV === null) { | ||||
|                     target[key] = null | ||||
|                 } else if (targetV === undefined) { | ||||
|                     target[key] = sourceV; | ||||
|                 } else { | ||||
|                     Utils.Merge(sourceV, targetV); | ||||
|  | @ -364,7 +366,9 @@ export class Utils { | |||
|         let file; | ||||
|         if (typeof (contents) === "string") { | ||||
|             file = new Blob([contents], {type: 'text/plain'}); | ||||
|         }else {file = contents;} | ||||
|         } else { | ||||
|             file = contents; | ||||
|         } | ||||
|         element.href = URL.createObjectURL(file); | ||||
|         element.download = fileName; | ||||
|         document.body.appendChild(element); // Required for this to work in FireFox
 | ||||
|  |  | |||
|  | @ -2,6 +2,8 @@ import T from "./TestHelper"; | |||
| import {Utils} from "../Utils"; | ||||
| import {equal} from "assert"; | ||||
| import LZString from "lz-string"; | ||||
| import * as Assert from "assert"; | ||||
| import * as assert from "assert"; | ||||
| 
 | ||||
| export default class UtilsSpec extends T { | ||||
|     private static readonly example = { | ||||
|  | @ -104,6 +106,16 @@ export default class UtilsSpec extends T { | |||
|                 equal(result.list1[1], "appended") | ||||
|                 equal(result.list2.length, 1) | ||||
|                 equal(result.list2[0], "should-be-untouched") | ||||
|             }], | ||||
|             ["Test merge with null", () => { | ||||
|                 const obj = { | ||||
|                     someValue: 42 | ||||
|                 } | ||||
|                 const override = { | ||||
|                     someValue: null | ||||
|                 } | ||||
|                 Utils.Merge(override, obj) | ||||
|                 equal(obj.someValue, null) | ||||
|             }] | ||||
|         ]); | ||||
|     } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue