-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UI-9566 - Ensure a best effort migration of the KPI titles even when some titles could not be successfully migrated. #129
Merged
NZepeda
merged 23 commits into
main
from
task/nze/UI-9566-support-migrating-empty-titles
Sep 25, 2024
Merged
Changes from 12 commits
Commits
Show all changes
23 commits
Select commit
Hold shift + click to select a range
dd3f796
UI-9566 - Ensure kpis with titles corresponding to empty measures hav…
NZepeda 620462a
Minor improvement
NZepeda 88bab6b
Drop kpi titles that have an empty location.
NZepeda 5e66d80
Update src/4.3_to_5.0/getMigratedKpiTitles.ts
NZepeda 206fc72
Update test resource
NZepeda fd9896d
Merge branch 'task/nze/UI-9566-support-migrating-empty-titles' of git…
NZepeda 3876da1
Apply suggestions from code review
NZepeda 85700d8
Update tests
NZepeda 96a710a
UI-9566 - Ensure a best effort migration of the kpi titles. If there …
NZepeda 6f50c45
Update src/migrateContentServer.test.ts
NZepeda 71fbb2d
Fixups
NZepeda 1d5c86c
Merge branch 'task/nze/UI-9566-support-migrating-empty-titles' of git…
NZepeda 643e807
Merge main
NZepeda 53e4964
Use an empty folder test resource and a generator function to create …
NZepeda 22b5547
Update previously added tests to utilize the new test resource function
NZepeda 31e1754
Remove the now unnecessary test resource files
NZepeda bdcdec4
Move the location of addLegacyBookmarkToUIFolder to the test resource…
NZepeda 1eb0b41
The empty legacy ui folder test resource is truly empty
NZepeda 22ecfc2
Split out the invalid legacy bookmarks and their folder into their ow…
NZepeda 1cde91f
Split out the legacy kpi bookmark and folder into their own resource …
NZepeda 2280099
Create the smallLegacy ui folder with the new add legacy bookmark to …
NZepeda 26adf4b
Apply suggestions from code review
NZepeda dee3129
Ensure the test snapshots have not lost data
NZepeda File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
241 changes: 241 additions & 0 deletions
241
src/4.3_to_5.0/__test_resources__/smallLegacyUIFolderWithInvalidKpiTitle.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,241 @@ | ||
/** | ||
* The shortened version of the content of the /ui folder on a Content Server, useful for unit tests. | ||
* Contains a KPI widget containing a custom title with an empty `tupleKey` for its location. | ||
*/ | ||
export const smallLegacyUIFolderWithInvalidKpiTitle = { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["admin"], | ||
readers: ["admin"], | ||
timestamp: 1607879725132, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
children: { | ||
bookmarks: { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["ROLE_CS_ROOT"], | ||
readers: ["ROLE_USER"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
children: { | ||
content: { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["ROLE_USER"], | ||
readers: ["ROLE_USER"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
children: { | ||
kpi: { | ||
entry: { | ||
content: | ||
'{"description": "A KPI containing a custom title with an empty tupleKey","name":"KPI","type":"container","value": {"style": {},"showTitleBar": true,"body": {"serverUrl": "","mdx": "SELECT NON EMPTY Hierarchize(AddCalculatedMembers(Descendants({[Geography].[City].[ALL].[AllMember]},1,SELF_AND_BEFORE))) ON ROWS,NON EMPTY {[Measures].[contributors.COUNT]} ON COLUMNS FROM (SELECT[Geography].[City].[ALL].[AllMember].[New York] ON COLUMNS FROM [EquityDerivativesCube])","contextValues": {},"updateMode": "once","ranges": {"row": {},"column": {}},"configuration": {"featuredValues": {"locations":{"":{"title": "Title with empty tupleKey"},"[Measures].[contributors.COUNT]": {"title": "Custom title for contributors.COUNT"}}}}},"containerKey":"featured-values"},"writable": true}', | ||
isDirectory: false, | ||
owners: ["admin"], | ||
readers: ["admin"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
}, | ||
}, | ||
}, | ||
i18n: { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["ROLE_CS_ROOT"], | ||
readers: ["ROLE_USER"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
children: { | ||
"en-US": { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["ROLE_CS_ROOT"], | ||
readers: ["ROLE_USER"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
}, | ||
"fr-FR": { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["ROLE_CS_ROOT"], | ||
readers: ["ROLE_USER"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
}, | ||
}, | ||
}, | ||
structure: { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["ROLE_USER"], | ||
readers: ["ROLE_USER"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
children: { | ||
kpi: { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["admin"], | ||
readers: ["admin"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}, | ||
settings: { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["ROLE_CS_ROOT"], | ||
readers: ["ROLE_USER"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
children: { | ||
default: { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["ROLE_CS_ROOT"], | ||
readers: ["ROLE_USER"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
children: { | ||
preferences: { | ||
entry: { | ||
content: '{\n "allow": [],\n "deny": [],\n "map": {}\n}', | ||
isDirectory: false, | ||
owners: ["ROLE_CS_ROOT"], | ||
readers: ["ROLE_USER"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
}, | ||
}, | ||
}, | ||
roles: { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["ROLE_CS_ROOT"], | ||
readers: ["ROLE_USER"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
}, | ||
users: { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["ROLE_USER"], | ||
readers: ["ROLE_USER"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
children: { | ||
user1: { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["user1"], | ||
readers: ["user1"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
children: { | ||
preferences: { | ||
entry: { | ||
content: | ||
'{\n "map": {\n "defaultPermissions": {\n "owners": [\n "user2"\n ],\n "readers": [\n "user2"\n ]\n }\n }\n}', | ||
isDirectory: false, | ||
owners: ["user1"], | ||
readers: ["user1"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
}, | ||
}, | ||
}, | ||
admin: { | ||
entry: { | ||
isDirectory: true, | ||
owners: ["admin"], | ||
readers: ["admin"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
children: { | ||
preferences: { | ||
entry: { | ||
content: | ||
'{\n "map": {\n "tree.search.maxResults": 10,\n "global.theme": "dark-activeviam",\n "userFilters.enabled": true,\n "showLegacyCharts": true,\n "showLegacyMaps": true,\n "widgets.Tabular.drillthrough.selectedColumns": {\n "https://activepivot-ranch.activeviam.com:5900": {\n "EquityDerivativesCube": [\n {\n "functionName": "MemberValue",\n "columnName": "delta"\n },\n {\n "functionName": "Caption",\n "columnName": "delta"\n },\n {\n "functionName": "MemberValue",\n "columnName": "gamma"\n },\n {\n "functionName": "Caption",\n "columnName": "gamma"\n },\n {\n "functionName": "MemberValue",\n "columnName": "pnlVega"\n },\n {\n "functionName": "Caption",\n "columnName": "pnlVega"\n },\n {\n "functionName": "MemberValue",\n "columnName": "Desk"\n },\n {\n "functionName": "Caption",\n "columnName": "Desk"\n },\n {\n "functionName": "MemberValue",\n "columnName": "Currency"\n },\n {\n "functionName": "Caption",\n "columnName": "Currency"\n },\n {\n "functionName": "MemberValue",\n "columnName": "Date"\n },\n {\n "functionName": "Caption",\n "columnName": "Date"\n },\n {\n "columnName": "HostName",\n "functionName": "MemberValue"\n },\n {\n "columnName": "HostName",\n "functionName": "Caption"\n }\n ],\n "EquityDerivativesCubeDist": [\n {\n "functionName": "MemberValue",\n "columnName": "BumpedMtmDown"\n },\n {\n "functionName": "Caption",\n "columnName": "BumpedMtmDown"\n },\n {\n "functionName": "MemberValue",\n "columnName": "ProductQtyMultiplier"\n },\n {\n "functionName": "Caption",\n "columnName": "ProductQtyMultiplier"\n },\n {\n "functionName": "MemberValue",\n "columnName": "ProductQtyMultiplier"\n },\n {\n "functionName": "Caption",\n "columnName": "ProductQtyMultiplier"\n },\n {\n "functionName": "MemberValue",\n "columnName": "vega"\n },\n {\n "functionName": "Caption",\n "columnName": "vega"\n },\n {\n "functionName": "MemberValue",\n "columnName": "rho"\n },\n {\n "functionName": "Caption",\n "columnName": "rho"\n },\n {\n "functionName": "MemberValue",\n "columnName": "productId"\n },\n {\n "functionName": "Caption",\n "columnName": "productId"\n },\n {\n "functionName": "MemberValue",\n "columnName": "pnlVega"\n },\n {\n "functionName": "Caption",\n "columnName": "pnlVega"\n },\n {\n "functionName": "MemberValue",\n "columnName": "pnlDelta"\n },\n {\n "functionName": "Caption",\n "columnName": "pnlDelta"\n },\n {\n "functionName": "MemberValue",\n "columnName": "pnl"\n },\n {\n "functionName": "Caption",\n "columnName": "pnl"\n },\n {\n "functionName": "MemberValue",\n "columnName": "gamma"\n },\n {\n "functionName": "Caption",\n "columnName": "gamma"\n },\n {\n "functionName": "MemberValue",\n "columnName": "delta"\n },\n {\n "functionName": "Caption",\n "columnName": "delta"\n },\n {\n "functionName": "MemberValue",\n "columnName": "TradeId"\n },\n {\n "functionName": "Caption",\n "columnName": "TradeId"\n },\n {\n "functionName": "MemberValue",\n "columnName": "ProductQtyMultiplier"\n },\n {\n "functionName": "Caption",\n "columnName": "ProductQtyMultiplier"\n },\n {\n "functionName": "MemberValue",\n "columnName": "ProductQtyMultiplier"\n },\n {\n "functionName": "Caption",\n "columnName": "ProductQtyMultiplier"\n },\n {\n "functionName": "MemberValue",\n "columnName": "ProductBaseMtm"\n },\n {\n "functionName": "Caption",\n "columnName": "ProductBaseMtm"\n },\n {\n "columnName": "ProductQtyMultiplier",\n "functionName": "MemberValue"\n },\n {\n "columnName": "ProductQtyMultiplier",\n "functionName": "Caption"\n }\n ]\n }\n },\n "defaultPermissions": {\n "owners": [\n "admin"\n ],\n "readers": [\n "admin"\n ]\n },\n "project.content-editor.configuration": {\n "autoSwitchToFieldsOnEmptyWidget": true,\n "advancedModeDropdownHidden": false,\n "hideFieldsControls": false,\n "mdx-common": {\n "regularModeTab": "filters",\n "advancedModeEnabled": false,\n "advancedModeTab": "mdx"\n }\n },\n "user.contextValues": {\n "EquityDerivativesCube": {},\n "EquityDerivativesCubeDist": {}\n },\n "user.filters": {\n "EquityDerivativesCube": ["[Geography].[City].[ALL].[AllMember].[Berlin]"],\n "EquityDerivativesCubeDist": []\n },\n "filtering.hierarchyToFilterType.[Geography].[City]": "explicit",\n "filtering.hierarchyToFilterType.[Currency].[Currency]": "explicit",\n "filtering.hierarchyToFilterType.[Trades].[Trades]": "topcount",\n "servers.alias": {\n "https://activepivot-ranch.activeviam.com:5900": "http://localhost:8080"\n }\n }\n}', | ||
isDirectory: false, | ||
owners: ["admin"], | ||
readers: ["admin"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}, | ||
version: { | ||
entry: { | ||
content: '{"package":"4.3.8","contentServerApi":"0.1.0"}', | ||
isDirectory: false, | ||
owners: ["ROLE_CS_ROOT"], | ||
readers: ["ROLE_USER"], | ||
timestamp: 1607879735685, | ||
lastEditor: "admin", | ||
canRead: true, | ||
canWrite: true, | ||
}, | ||
}, | ||
}, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be nice to factorize the common part between this and the test resource introduced in #128, in order to avoid adding redundant content to this repo.
For instance, we could have a
emptyLegacyUIFolder
test resource and aaddLegacyBookmarkToUIFolder
test resource function that takes a map of id to legacy bookmark as argument and returns the "small legacy UI folder with ..." object, without mutatingemptyLegacyFolder
.