We should probably run each case sequentially on the current iModel from the battery of iModels to test:
const testCases = {
"identity transform": require("./identity-transform");
};
// need to not download iModels that we don't intend to test for local experiments
for (const iModel of iModelsInProject({ filter: m => m.tShirtsize === 'm' } )) {
describe(`Transforms of ${iModel.name}`, () => {
for (const [testCaseName, testCaseRun] of Object.entries(testCases) {
it(testCaseFunction.name, function () {
//if (!process.env.CI && iModel.tShirtsize !== 'm') this.skip();
testCaseRun(iModel);
});
}
});
}
Sorted by priority:
[x] identity transformation (source to empty target)
[x] prepare fork
[x] prepare fork all fed guids
[x] prepare fork few fed guids
create elements with "empty" fed-guid (000-0000...), @itwin/core-bentley should have something for that
[x] prepare fork few fed guids but add them to the source ourselves
copy the source in the test, and use the withSqliteStatement API to query the bis_Element.FederationGuid and update it to have a federation guid if it doesn't already (use randomblob(16))
[x] raw no transformer
we can do this one later. Insert target scope element, iterate over the elements and add ExternalSourceAspects to those without fedguids, as the transformer would, do not invoke the transformer.
[ ] synchronize fork (many/few fed guids)
[ ] reverse synchronize fork (many/few fed guids)
[ ] physical model consolidation
[ ] many deletes
[ ] many relationships
[ ] complex schema
[ ] complex geometry
[x] control
[x] raw insert many elements
[x] apply changeset containing same elements
[x] populate empty target from source containing same elements
[x] populate empty target from source containing same elements, also add provenance
We should probably run each case sequentially on the current iModel from the battery of iModels to test:
Sorted by priority:
randomblob(16)
)