Skip to content

Commit 53c5985

Browse files
committed
fix: settings import/export supports NoFolders
1 parent 83f12ba commit 53c5985

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

cls/SourceControl/Git/Settings.cls

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,10 @@ Method ToDynamicObject() As %DynamicObject
177177
do settingsJSON.Mappings.%Set(k1, {})
178178
set k2 = $order(..Mappings(k1,""))
179179
while (k2 '= "") {
180-
do settingsJSON.Mappings.%Get(k1).%Set(k2,..Mappings(k1,k2))
180+
do settingsJSON.Mappings.%Get(k1).%Set(k2,{"directory": (..Mappings(k1,k2))})
181+
if $get(..Mappings(k1,k2,"NoFolders")) {
182+
do settingsJSON.Mappings.%Get(k1).%Get(k2).%Set("noFolders", 1, "boolean")
183+
}
181184
set k2 = $order(..Mappings(k1, k2))
182185
}
183186
set k1 = $order(..Mappings(k1))
@@ -196,7 +199,10 @@ Method ImportDynamicObject(pSettingsDyn As %DynamicObject)
196199
while i1.%GetNext(.k1, .v1) {
197200
set i2 = v1.%GetIterator()
198201
while i2.%GetNext(.k2, .v2) {
199-
set ..Mappings(k1, k2) = v2
202+
set ..Mappings(k1, k2) = v2.%Get("directory")
203+
if v2.%Get("noFolders") {
204+
set ..Mappings(k1, k2, "NoFolders") = 1
205+
}
200206
}
201207
}
202208
}

test/UnitTest/SourceControl/Git/Settings.cls

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,18 @@ Method SampleSettingsJSON()
1313
"decomposeProductions": true,
1414
"Mappings": {
1515
"TUV": {
16-
"*": "tuv/",
17-
"UnitTest": "tuv2/"
16+
"*": {
17+
"directory": "tuv/"
18+
},
19+
"UnitTest": {
20+
"directory": "tuv2/",
21+
"noFolders": true
22+
}
1823
},
1924
"XYZ": {
20-
"*": "xyz/"
25+
"*": {
26+
"directory": "xyz/"
27+
}
2128
}
2229
}
2330
}
@@ -36,6 +43,7 @@ Method TestJSONImportExport()
3643
do $$$AssertEquals(settings.pullEventClass, "pull event class")
3744
do $$$AssertEquals($get(settings.Mappings("TUV","*")),"tuv/")
3845
do $$$AssertEquals($get(settings.Mappings("TUV","UnitTest")),"tuv2/")
46+
do $$$AssertTrue($get(settings.Mappings("TUV","UnitTest","NoFolders")))
3947
do $$$AssertEquals($get(settings.Mappings("XYZ","*")),"xyz/")
4048

4149
$$$ThrowOnError(settings.%Save())
@@ -44,9 +52,10 @@ Method TestJSONImportExport()
4452
do $$$AssertEquals(settingsDynObj.decomposeProductions, 1)
4553
do $$$AssertEquals(settingsDynObj.percentClassReplace, "x")
4654
do $$$AssertEquals(settingsDynObj.pullEventClass, "pull event class")
47-
do $$$AssertEquals(settingsDynObj.Mappings."TUV"."*","tuv/")
48-
do $$$AssertEquals(settingsDynObj.Mappings."TUV"."UnitTest","tuv2/")
49-
do $$$AssertEquals(settingsDynObj.Mappings."XYZ"."*","xyz/")
55+
do $$$AssertEquals(settingsDynObj.Mappings."TUV"."*".directory,"tuv/")
56+
do $$$AssertEquals(settingsDynObj.Mappings."TUV"."UnitTest".directory,"tuv2/")
57+
do $$$AssertTrue(settingsDynObj.Mappings."TUV"."UnitTest".noFolders)
58+
do $$$AssertEquals(settingsDynObj.Mappings."XYZ"."*".directory,"xyz/")
5059
}
5160

5261
Method TestSaveAndImportSettings()

0 commit comments

Comments
 (0)