canjs / can-fixture

Intercept and simulate AJAX requests. Works without CanJS.

Home Page:https://canjs.com/doc/can-fixture.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

can-fixture falls back to legacyStore if passed a mismatched version of can-set ~3

Bajix opened this issue · comments

If a version of can-set other than what's internally loaded within can-fixture is used, then can-fixture will revert to using the legacy store. There should be a strategy to avoid this, as it makes otherwise valid code behave unexpectedly.

Store.make = function (count, make, algebra) {
    /*jshint eqeqeq:false */
    // check if algebra was passed
    var isNew = false;
    if( count instanceof canSet.Algebra || make instanceof canSet.Algebra || algebra instanceof canSet.Algebra ) {
        isNew = true;
    }
    if(!isNew) {
        return legacyStore.apply(this, arguments);
    }

The solution here would be to duck-type an algebra. Perhaps checking what's needed by store : getSubset and such.