@itwin/core-backend 5.1.0-dev.42 → 5.1.0-dev.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ElementLRUCache.test.js","sourceRoot":"","sources":["../../../src/test/ElementLRUCache.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAiB,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE7E,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,SAAS,GAAkB;QAC/B,WAAW,EAAE,EAAE;QACf,OAAO,EAAE;YACP,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE;gBACJ,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,WAAW;aACnB;YACD,aAAa,EAAE,UAAU;SAC1B;KACF,CAAA;IAED,MAAM,SAAS,GAAkB;QAC/B,WAAW,EAAE,EAAE;QACf,OAAO,EAAE;YACP,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE;gBACJ,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,YAAY;gBACnB,KAAK,EAAE,YAAY;aACpB;YACD,aAAa,EAAE,WAAW;SAC3B;KACF,CAAA;IAED,MAAM,SAAS,GAAkB;QAC/B,WAAW,EAAE,EAAE;QACf,OAAO,EAAE;YACP,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE;gBACJ,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,YAAY;aACpB;YACD,aAAa,EAAE,WAAW;SAC3B;KACF,CAAA;IAED,MAAM,eAAe,GAAkB;QACrC,WAAW,EAAE,EAAE;QACf,OAAO,EAAE;YACP,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE;gBACJ,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,WAAW;aACnB;YACD,aAAa,EAAE,UAAU;YACzB,cAAc,EAAE,aAAa;SAC9B;KACF,CAAA;IAED,MAAM,YAAY,GAAkB;QAClC,WAAW,EAAE,EAAE;QACf,OAAO,EAAE;YACP,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE;gBACJ,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,YAAY;aACpB;YACD,aAAa,EAAE,WAAW;YAC1B,cAAc,EAAE,cAAc;SAC/B;KACF,CAAA;IAED,MAAM,YAAY,GAAkB;QAClC,WAAW,EAAE,EAAE;QACf,OAAO,EAAE;YACP,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE;gBACJ,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,YAAY;aACpB;YACD,aAAa,EAAE,WAAW;YAC1B,cAAc,EAAE,cAAc;SAC/B;KACF,CAAA;IAED,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC1C,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,SAAS,CAAC;QAChC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzB,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC1C,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE9C,aAAa,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC;QACzC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzB,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC3B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,eAAe,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC5F,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC1C,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC1C,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE1C,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE3B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC1C,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE1C,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAEvC,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAEtC,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAK,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,eAAe,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAEtC,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAEtC,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAEtC,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE/B,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect } from \"chai\";\r\nimport { CachedElement, ElementLRUCache } from \"../internal/ElementLRUCache\";\r\n\r\ndescribe('ElementLruCache', () => {\r\n const testElem1: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId\",\r\n model: \"testModel\",\r\n code: {\r\n spec: \"testSpec\",\r\n scope: \"testScope\"\r\n },\r\n classFullName: \"testName\"\r\n },\r\n }\r\n\r\n const testElem2: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId2\",\r\n model: \"testModel2\",\r\n code: {\r\n spec: \"testSpec2\",\r\n scope: \"testScope2\",\r\n value: \"testValue2\"\r\n },\r\n classFullName: \"testName2\"\r\n },\r\n }\r\n\r\n const testElem3: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId3\",\r\n model: \"testModel3\",\r\n code: {\r\n spec: \"testSpec3\",\r\n scope: \"testScope3\"\r\n },\r\n classFullName: \"testName3\"\r\n },\r\n }\r\n\r\n const testElemFedGuid: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testIdFed\",\r\n model: \"testModel\",\r\n code: {\r\n spec: \"testSpec\",\r\n scope: \"testScope\"\r\n },\r\n classFullName: \"testName\",\r\n federationGuid: \"testFedGuid\"\r\n },\r\n }\r\n\r\n const testElemCode: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId5\",\r\n model: \"testModel5\",\r\n code: {\r\n spec: \"testSpec2:testValue2\",\r\n scope: \"testScope2\"\r\n },\r\n classFullName: \"testName5\",\r\n federationGuid: \"testFedGuid5\"\r\n },\r\n }\r\n\r\n const testElemNoId: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: undefined,\r\n model: \"testModel5\",\r\n code: {\r\n spec: \"testSpec2\",\r\n scope: \"testScope2\"\r\n },\r\n classFullName: \"testName5\",\r\n federationGuid: \"testFedGuid5\"\r\n },\r\n }\r\n\r\n it('should store and retrieve a valid element', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n const retrievedElem = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElem1);\r\n });\r\n\r\n it('should overwrite existing valid element', () => {\r\n const cache = new ElementLRUCache(3);\r\n const testElemModel = testElem1;\r\n cache.set(testElemModel);\r\n const retrievedElem = cache.get({ id: testElemModel.elProps.id });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElemModel);\r\n\r\n testElemModel.elProps.model = \"newModel\";\r\n cache.set(testElemModel);\r\n const retrievedElem2 = cache.get({ id: testElemModel.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElemModel);\r\n });\r\n\r\n it('should store and retrieve a valid element by fedGuid', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElemFedGuid);\r\n const retrievedElem = cache.get({ federationGuid: testElemFedGuid.elProps.federationGuid });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElemFedGuid);\r\n });\r\n\r\n it('should store and retrieve a valid element by code', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n const retrievedElem = cache.get({ code: testElem1.elProps.code });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElem1);\r\n\r\n cache.set(testElem2);\r\n const retrievedElem2 = cache.get({ code: testElem2.elProps.code });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem2);\r\n });\r\n\r\n it('should fail to store an element without id', () => {\r\n const cache = new ElementLRUCache(3);\r\n expect(() => cache.set(testElemNoId)).to.throw(Error, \"Element must have an id\");\r\n });\r\n\r\n it('should delete least used element', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n cache.set(testElemFedGuid);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElem2);\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.be.undefined;\r\n\r\n const retrievedElem3 = cache.get({ id: testElem3.elProps.id });\r\n expect(retrievedElem3).to.not.be.undefined;\r\n expect(retrievedElem3).to.equal(testElem3);\r\n });\r\n\r\n it('should delete with id', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ id: testElem2.elProps.id });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should delete with federation guid', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElemFedGuid);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ federationGuid: testElemFedGuid.elProps.federationGuid });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElemFedGuid.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should delete with code', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ code: testElem2.elProps.code });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should delete with model id', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n cache.deleteWithModel(testElem2.elProps.model);\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should clear the cache', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n\r\n cache.clear();\r\n expect(cache.size).to.equal(0);\r\n\r\n const retrievedElem = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n });\r\n\r\n it('should not return wrong element when passed a manipulated code value', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem2);\r\n expect(cache.size).to.equal(1);\r\n\r\n const retrievedElem = cache.get({ code: testElemCode.elProps.code });\r\n expect(retrievedElem).to.be.undefined;\r\n });\r\n});"]}
1
+ {"version":3,"file":"ElementLRUCache.test.js","sourceRoot":"","sources":["../../../src/test/ElementLRUCache.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from \"chai\";\r\nimport { CachedElement, ElementLRUCache, InstanceKeyLRUCache } from \"../internal/ElementLRUCache\";\r\nimport { IModelJsNative } from \"../core-backend\";\r\nimport { Id64 } from \"@itwin/core-bentley\";\r\n\r\ndescribe('ElementLruCache', () => {\r\n const testElem1: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId\",\r\n model: \"testModel\",\r\n code: {\r\n spec: \"testSpec\",\r\n scope: \"testScope\"\r\n },\r\n classFullName: \"testName\"\r\n },\r\n }\r\n\r\n const testElem2: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId2\",\r\n model: \"testModel2\",\r\n code: {\r\n spec: \"testSpec2\",\r\n scope: \"testScope2\",\r\n value: \"testValue2\"\r\n },\r\n classFullName: \"testName2\"\r\n },\r\n }\r\n\r\n const testElem3: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId3\",\r\n model: \"testModel3\",\r\n code: {\r\n spec: \"testSpec3\",\r\n scope: \"testScope3\"\r\n },\r\n classFullName: \"testName3\"\r\n },\r\n }\r\n\r\n const testElemFedGuid: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testIdFed\",\r\n model: \"testModel\",\r\n code: {\r\n spec: \"testSpec\",\r\n scope: \"testScope\"\r\n },\r\n classFullName: \"testName\",\r\n federationGuid: \"testFedGuid\"\r\n },\r\n }\r\n\r\n const testElemCode: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: \"testId5\",\r\n model: \"testModel5\",\r\n code: {\r\n spec: \"testSpec2:testValue2\",\r\n scope: \"testScope2\"\r\n },\r\n classFullName: \"testName5\",\r\n federationGuid: \"testFedGuid5\"\r\n },\r\n }\r\n\r\n const testElemNoId: CachedElement = {\r\n loadOptions: {},\r\n elProps: {\r\n id: undefined,\r\n model: \"testModel5\",\r\n code: {\r\n spec: \"testSpec2\",\r\n scope: \"testScope2\"\r\n },\r\n classFullName: \"testName5\",\r\n federationGuid: \"testFedGuid5\"\r\n },\r\n }\r\n\r\n it('should store and retrieve a valid element', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n const retrievedElem = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElem1);\r\n });\r\n\r\n it('should overwrite existing valid element', () => {\r\n const cache = new ElementLRUCache(3);\r\n const testElemModel = testElem1;\r\n cache.set(testElemModel);\r\n const retrievedElem = cache.get({ id: testElemModel.elProps.id });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElemModel);\r\n\r\n testElemModel.elProps.model = \"newModel\";\r\n cache.set(testElemModel);\r\n const retrievedElem2 = cache.get({ id: testElemModel.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElemModel);\r\n });\r\n\r\n it('should store and retrieve a valid element by fedGuid', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElemFedGuid);\r\n const retrievedElem = cache.get({ federationGuid: testElemFedGuid.elProps.federationGuid });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElemFedGuid);\r\n });\r\n\r\n it('should store and retrieve a valid element by code', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n const retrievedElem = cache.get({ code: testElem1.elProps.code });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElem1);\r\n\r\n cache.set(testElem2);\r\n const retrievedElem2 = cache.get({ code: testElem2.elProps.code });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem2);\r\n });\r\n\r\n it('should fail to store an element without id', () => {\r\n const cache = new ElementLRUCache(3);\r\n expect(() => cache.set(testElemNoId)).to.throw(Error, \"Element must have an id\");\r\n });\r\n\r\n it('should delete least used element', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n cache.set(testElemFedGuid);\r\n expect(cache.size).to.equal(3);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.not.be.undefined;\r\n expect(retrievedElem).to.equal(testElem2);\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.be.undefined;\r\n\r\n const retrievedElem3 = cache.get({ id: testElem3.elProps.id });\r\n expect(retrievedElem3).to.not.be.undefined;\r\n expect(retrievedElem3).to.equal(testElem3);\r\n });\r\n\r\n it('should delete with id', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ id: testElem2.elProps.id });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should delete with federation guid', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElemFedGuid);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ federationGuid: testElemFedGuid.elProps.federationGuid });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElemFedGuid.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should delete with code', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ code: testElem2.elProps.code });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should delete with model id', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n cache.deleteWithModel(testElem2.elProps.model);\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedElem = cache.get({ id: testElem2.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n\r\n const retrievedElem2 = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem2).to.not.be.undefined;\r\n expect(retrievedElem2).to.equal(testElem1);\r\n });\r\n\r\n it('should clear the cache', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem1);\r\n cache.set(testElem2);\r\n cache.set(testElem3);\r\n expect(cache.size).to.equal(3);\r\n\r\n cache.clear();\r\n expect(cache.size).to.equal(0);\r\n\r\n const retrievedElem = cache.get({ id: testElem1.elProps.id });\r\n expect(retrievedElem).to.be.undefined;\r\n });\r\n\r\n it('should not return wrong element when passed a manipulated code value', () => {\r\n const cache = new ElementLRUCache(3);\r\n cache.set(testElem2);\r\n expect(cache.size).to.equal(1);\r\n\r\n const retrievedElem = cache.get({ code: testElemCode.elProps.code });\r\n expect(retrievedElem).to.be.undefined;\r\n });\r\n});\r\n\r\ndescribe('InstanceKeyLRUCache', () => {\r\n const testArgs1: IModelJsNative.ResolveInstanceKeyArgs = {\r\n partialKey: {\r\n id: Id64.fromJSON(\"0x123\"),\r\n baseClassName: \"baseName\",\r\n },\r\n }\r\n\r\n const testArgs2: IModelJsNative.ResolveInstanceKeyArgs = {\r\n federationGuid: \"testFedGuid\",\r\n }\r\n\r\n const testArgs3: IModelJsNative.ResolveInstanceKeyArgs = {\r\n code: {\r\n spec: \"testSpec\",\r\n scope: \"testScope\",\r\n value: \"testValue\"\r\n }\r\n }\r\n\r\n const testArgs4: IModelJsNative.ResolveInstanceKeyArgs = {\r\n code: {\r\n spec: \"testSpec\",\r\n scope: \"testScope\"\r\n }\r\n }\r\n\r\n const testResults: IModelJsNative.ResolveInstanceKeyResult[] = [\r\n {\r\n id: Id64.fromJSON(\"0x123\"),\r\n classFullName: \"testName1\",\r\n },\r\n {\r\n id: Id64.fromJSON(\"0x122\"),\r\n classFullName: \"testName2\",\r\n },\r\n {\r\n id: Id64.fromJSON(\"0x133\"),\r\n classFullName: \"testName3\",\r\n },\r\n {\r\n id: Id64.fromJSON(\"0x144\"),\r\n classFullName: \"testName4\",\r\n }\r\n ];\r\n\r\n it('should store and retrieve a valid InstanceKey', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n const retrievedResult = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResult).to.not.be.undefined;\r\n expect(retrievedResult).to.equal(testResults[0]);\r\n });\r\n\r\n it('should overwrite existing valid InstanceKey', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n const testResult = testResults[0];\r\n cache.set(testArgs1, testResult);\r\n const retrievedResult = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResult).to.not.be.undefined;\r\n expect(retrievedResult).to.equal(testResult);\r\n\r\n const newTestResult = { id: testResult.id, classFullName: \"newModel\" };\r\n cache.set(testArgs1, newTestResult);\r\n const retrievedResult2 = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResult2).to.not.be.undefined;\r\n expect(retrievedResult2).to.equal(newTestResult);\r\n });\r\n\r\n it('should store and retrieve a valid InstanceKey by fedGuid', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs2, testResults[0]);\r\n const retrievedResult = cache.get({ federationGuid: testArgs2.federationGuid });\r\n expect(retrievedResult).to.not.be.undefined;\r\n expect(retrievedResult).to.equal(testResults[0]);\r\n });\r\n\r\n it('should store and retrieve a valid InstanceKey by code', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs3, testResults[0]);\r\n const retrievedResult = cache.get({ code: testArgs3.code });\r\n expect(retrievedResult).to.not.be.undefined;\r\n expect(retrievedResult).to.equal(testResults[0]);\r\n\r\n cache.set(testArgs4, testResults[1]);\r\n const retrievedResult2 = cache.get({ code: testArgs4.code });\r\n expect(retrievedResult2).to.not.be.undefined;\r\n expect(retrievedResult2).to.equal(testResults[1]);\r\n });\r\n\r\n it('should find the same InstanceKey with either code, fedGuid, or Id', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set({ ...testArgs1, ...testArgs2, ...testArgs3}, testResults[0]);\r\n\r\n const retrievedResultById = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResultById).to.not.be.undefined;\r\n expect(retrievedResultById).to.equal(testResults[0]);\r\n\r\n const retrievedResultByFedGuid = cache.get({ federationGuid: testArgs2.federationGuid });\r\n expect(retrievedResultByFedGuid).to.not.be.undefined;\r\n expect(retrievedResultByFedGuid).to.equal(testResults[0]);\r\n\r\n const retrievedResultByCode = cache.get({ code: testArgs3.code });\r\n expect(retrievedResultByCode).to.not.be.undefined;\r\n expect(retrievedResultByCode).to.equal(testResults[0]);\r\n });\r\n\r\n it('should update an existing InstanceKey with either code, fedGuid, or Id', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[0]);\r\n cache.set(testArgs3, testResults[0]);\r\n\r\n const retrievedResultById = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResultById).to.not.be.undefined;\r\n expect(retrievedResultById).to.equal(testResults[0]);\r\n\r\n const retrievedResultByFedGuid = cache.get({ federationGuid: testArgs2.federationGuid });\r\n expect(retrievedResultByFedGuid).to.not.be.undefined;\r\n expect(retrievedResultByFedGuid).to.equal(testResults[0]);\r\n\r\n const retrievedResultByCode = cache.get({ code: testArgs3.code });\r\n expect(retrievedResultByCode).to.not.be.undefined;\r\n expect(retrievedResultByCode).to.equal(testResults[0]);\r\n });\r\n\r\n it('should delete least used element', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n cache.set(testArgs4, testResults[3]);\r\n expect(cache.size).to.equal(3);\r\n\r\n const retrievedResult = cache.get(testArgs2);\r\n expect(retrievedResult).to.not.be.undefined;\r\n expect(retrievedResult).to.equal(testResults[1]);\r\n\r\n const retrievedResult2 = cache.get(testArgs1);\r\n expect(retrievedResult2).to.be.undefined;\r\n\r\n const retrievedResult3 = cache.get(testArgs3);\r\n expect(retrievedResult3).to.not.be.undefined;\r\n expect(retrievedResult3).to.equal(testResults[2]);\r\n });\r\n\r\n it('should delete with partialKey', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ partialKey: testArgs1.partialKey });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedResult = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResult).to.be.undefined;\r\n\r\n const retrievedResult2 = cache.get(testArgs2);\r\n expect(retrievedResult2).to.not.be.undefined;\r\n expect(retrievedResult2).to.equal(testResults[1]);\r\n });\r\n\r\n it('should delete with id', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n cache.deleteById(testArgs1.partialKey!.id);\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedResult = cache.get({ partialKey: testArgs1.partialKey });\r\n expect(retrievedResult).to.be.undefined;\r\n\r\n const retrievedResult2 = cache.get(testArgs2);\r\n expect(retrievedResult2).to.not.be.undefined;\r\n expect(retrievedResult2).to.equal(testResults[1]);\r\n });\r\n\r\n it('should throw when deleting with a bad id', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n expect(() => cache.deleteById(\"badid\")).to.throw(Error, \"Invalid id provided\");\r\n expect(cache.size).to.equal(3);\r\n });\r\n\r\n it('should delete with federation guid', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ federationGuid: testArgs2.federationGuid });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedResult = cache.get({ federationGuid: testArgs2.federationGuid });\r\n expect(retrievedResult).to.be.undefined;\r\n\r\n const retrievedResult2 = cache.get(testArgs3);\r\n expect(retrievedResult2).to.not.be.undefined;\r\n expect(retrievedResult2).to.equal(testResults[2]);\r\n });\r\n\r\n it('should delete with code', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n cache.delete({ code: testArgs3.code });\r\n expect(cache.size).to.equal(2);\r\n\r\n const retrievedResult = cache.get({ code: testArgs3.code });\r\n expect(retrievedResult).to.be.undefined;\r\n\r\n const retrievedResult2 = cache.get(testArgs1);\r\n expect(retrievedResult2).to.not.be.undefined;\r\n expect(retrievedResult2).to.equal(testResults[0]);\r\n });\r\n\r\n it('should delete with any applicable arg', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[0]);\r\n cache.set(testArgs3, testResults[0]);\r\n expect(cache.size).to.equal(1);\r\n cache.delete(testArgs3);\r\n expect(cache.size).to.equal(0);\r\n const retrievedResult = cache.get(testArgs1);\r\n expect(retrievedResult).to.be.undefined;\r\n\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n cache.set(testArgs4, testResults[0]);\r\n expect(cache.size).to.equal(3);\r\n\r\n cache.delete(testArgs4);\r\n expect(cache.size).to.equal(2);\r\n const retrievedResult2 = cache.get(testArgs1);\r\n expect(retrievedResult2).to.be.undefined;\r\n });\r\n\r\n it('should clear the cache', () => {\r\n const cache = new InstanceKeyLRUCache(3);\r\n cache.set(testArgs1, testResults[0]);\r\n cache.set(testArgs2, testResults[1]);\r\n cache.set(testArgs3, testResults[2]);\r\n expect(cache.size).to.equal(3);\r\n\r\n cache.clear();\r\n expect(cache.size).to.equal(0);\r\n\r\n const retrievedElem = cache.get(testArgs1);\r\n expect(retrievedElem).to.be.undefined;\r\n });\r\n});"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/core-backend",
3
- "version": "5.1.0-dev.42",
3
+ "version": "5.1.0-dev.43",
4
4
  "description": "iTwin.js backend components",
5
5
  "main": "lib/cjs/core-backend.js",
6
6
  "module": "lib/esm/core-backend.js",
@@ -27,10 +27,10 @@
27
27
  },
28
28
  "peerDependencies": {
29
29
  "@opentelemetry/api": "^1.0.4",
30
- "@itwin/core-bentley": "5.1.0-dev.42",
31
- "@itwin/core-common": "5.1.0-dev.42",
32
- "@itwin/ecschema-metadata": "5.1.0-dev.42",
33
- "@itwin/core-geometry": "5.1.0-dev.42"
30
+ "@itwin/core-bentley": "5.1.0-dev.43",
31
+ "@itwin/core-common": "5.1.0-dev.43",
32
+ "@itwin/core-geometry": "5.1.0-dev.43",
33
+ "@itwin/ecschema-metadata": "5.1.0-dev.43"
34
34
  },
35
35
  "peerDependenciesMeta": {
36
36
  "@opentelemetry/api": {
@@ -72,16 +72,16 @@
72
72
  "marked": "^14.1.3",
73
73
  "sql-formatter": "^15.4.6",
74
74
  "webpack": "^5.97.1",
75
- "@itwin/build-tools": "5.1.0-dev.42",
76
- "@itwin/core-bentley": "5.1.0-dev.42",
77
- "@itwin/core-common": "5.1.0-dev.42",
78
- "@itwin/ecschema-metadata": "5.1.0-dev.42",
79
- "@itwin/core-geometry": "5.1.0-dev.42",
80
- "@itwin/ecsql-common": "5.1.0-dev.42",
81
- "internal-tools": "3.0.0-dev.69"
75
+ "@itwin/build-tools": "5.1.0-dev.43",
76
+ "@itwin/core-geometry": "5.1.0-dev.43",
77
+ "@itwin/core-bentley": "5.1.0-dev.43",
78
+ "internal-tools": "3.0.0-dev.69",
79
+ "@itwin/core-common": "5.1.0-dev.43",
80
+ "@itwin/ecschema-metadata": "5.1.0-dev.43",
81
+ "@itwin/ecsql-common": "5.1.0-dev.43"
82
82
  },
83
83
  "dependencies": {
84
- "@bentley/imodeljs-native": "5.1.46",
84
+ "@bentley/imodeljs-native": "5.1.49",
85
85
  "@itwin/cloud-agnostic-core": "^2.2.4",
86
86
  "@itwin/object-storage-azure": "^2.3.0",
87
87
  "@itwin/object-storage-core": "^2.3.0",