Skip to content
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

Issue with packery functions while executing unit test's #534

Open
vinuvinay3 opened this issue Sep 18, 2019 · 0 comments
Open

Issue with packery functions while executing unit test's #534

vinuvinay3 opened this issue Sep 18, 2019 · 0 comments

Comments

@vinuvinay3
Copy link

I am using Angular 7 Here is my component code
ngOnInit() {

 Packery.prototype.getShiftPositions = function (attrName) {
  attrName = attrName || 'id';
  return this.items.map(function (item) {
    return {
      attr: item.element.getAttribute(attrName),
      x: item.rect.x / this.pckry.width
    }
  });
};

Packery.prototype.initShiftLayout = function (positions, attr) {
  if (!positions) {
    // if no initial positions, run packery layout
    this.layout();
    return;
  }
  // parse string to JSON
  if (typeof positions === 'string') {
    try {
      positions = JSON.parse(positions);
    } catch (error) {
      console.error('JSON parse error: ' + error);
      this.layout();
      return;
    }
  }

  attr = attr || 'id'; // default to id attribute
  this._resetLayout();
  // set item order and horizontal position from saved positions
  this.items = positions.map(function (itemPosition) {
    const selector = '[' + attr + '="' + itemPosition.attr + '"]'
    const itemElem = this.element.querySelector(selector);
    const item = this.getItem(itemElem);
    item.rect.x = itemPosition.x * this.pckry.width;
    return item;
  }, this);
  this.shiftLayout();
};

this.pckry = new Packery('.grid', {
  itemSelector: '.grid-item',
  gutter: 10
});

// get saved dragged positions
// const initPositions = localStorage.getItem('dragPositions');
this.memberDashboardService.getUserPrefrences().subscribe(
  data => {
    this.pckry.initShiftLayout( data, 'data-item-id' );
   } ,
   error => {
    //console.log("Unable to retrieve User prefrences");
   }
);


this.pckry.getItemElements().forEach(itemElem => {
  const draggie = new Draggabilly(itemElem);
  this.pckry.bindDraggabillyEvents(draggie);
});

// save drag positions on event
this.pckry.on('dragItemPositioned', () => {
  const positions = this.pckry.getShiftPositions('data-item-id');
  this.memberDashboardService.updateUserPrefrences(positions).subscribe(
    data => {
      //console.log("User Prefrences Persisted");
    },
    error => {
      //console.log("Unable to store User prefrences");
    }
  );
});

}

when i run the unit test's using jasmine and karma I get the following error, can someone please help me with this

PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 4 of 29 (4 FAILED) (0 secs / 0.575 secs)
PhantomJS 2.1.1 (Mac OS X 0.0.0) MemberTilesComponent should create member dashboard component FAILED
TypeError: undefined is not an object (evaluating 'transform.indexOf') in http://localhost:9876/_karma_webpack_/vendor.js (line 137960)
_addTransformPosition@http://localhost:9876/_karma_webpack_/vendor.js:137960:17
_getPosition@http://localhost:9876/_karma_webpack_/vendor.js:137942:29
_create@http://localhost:9876/_karma_webpack_/vendor.js:137875:20
Draggabilly@http://localhost:9876/_karma_webpack_/vendor.js:137848:15
http://localhost:9876/_karma_webpack_/main.js:1035:70591
forEach@[native code]
ngOnInit@http://localhost:9876/_karma_webpack_/main.js:1035:70470
checkAndUpdateDirectiveInline@http://localhost:9876/_karma_webpack_/vendor.js:58260:27
checkAndUpdateNodeInline@http://localhost:9876/_karma_webpack_/vendor.js:59524:49
checkAndUpdateNode@http://localhost:9876/_karma_webpack_/vendor.js:59486:40
debugCheckAndUpdateNode@http://localhost:9876/_karma_webpack_/vendor.js:60120:43
debugCheckDirectivesFn@http://localhost:9876/_karma_webpack_/vendor.js:60080:36
debugUpdateDirectives@http://localhost:9876/_karma_webpack_/vendor.js:60072:37
checkAndUpdateView@http://localhost:9876/_karma_webpack_/vendor.js:59468:30
callWithDebugContext@http://localhost:9876/_karma_webpack_/vendor.js:60362:30
debugCheckAndUpdateView@http://localhost:9876/_karma_webpack_/vendor.js:60040:32
detectChanges@http://localhost:9876/_karma_webpack_/vendor.js:57849:40
_tick@http://localhost:9876/_karma_webpack_/vendor.js:61043:45
http://localhost:9876/_karma_webpack_/vendor.js:61057:54
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:8046:31
onInvoke@http://localhost:9876/_karma_webpack_/vendor.js:179509:45
invoke@http://localhost:9876/_karma_webpack_/polyfills.js:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant