Browse Source

clean up resize code, move tests to enzyme

Jess MacQueen 8 years ago
parent
commit
d05434b5a5

+ 10 - 10
src/sentry/static/sentry/app/components/avatarCropper.jsx

@@ -165,21 +165,22 @@ const AvatarCropper = React.createClass({
     // ne: size, top
     // sw: size, left
     // se: size
+    let editingTop = resizeDirection === 'nw' || resizeDirection === 'ne';
+    let editingLeft = resizeDirection === 'nw' || resizeDirection === 'sw';
     let newDimensions = {size: oldDimensions.size + diff};
-    if (resizeDirection === 'nw' || resizeDirection === 'ne') {
+    if (editingTop) {
       newDimensions.top = oldDimensions.top - diff;
       height = $container.height() - newDimensions.top;
     }
 
-    if (resizeDirection === 'nw' || resizeDirection === 'sw') {
+    if (editingLeft) {
       newDimensions.left = oldDimensions.left - diff;
       width = $container.width() - newDimensions.left;
     }
 
     if (newDimensions.top < 0) {
       newDimensions.size = newDimensions.size + newDimensions.top;
-      // Only update left if it's something we edit in this direction
-      if (newDimensions.hasOwnProperty('left')) {
+      if (editingLeft) {
         newDimensions.left = newDimensions.left - newDimensions.top;
       }
       newDimensions.top = 0;
@@ -187,8 +188,7 @@ const AvatarCropper = React.createClass({
 
     if (newDimensions.left < 0) {
       newDimensions.size = newDimensions.size + newDimensions.left;
-      // Only update top if it's something we edit in this direction
-      if (newDimensions.hasOwnProperty('top')) {
+      if (editingTop) {
         newDimensions.top = newDimensions.top - newDimensions.left;
       }
       newDimensions.left = 0;
@@ -196,18 +196,18 @@ const AvatarCropper = React.createClass({
 
     let maxSize = Math.min(width, height);
     if (newDimensions.size > maxSize) {
-      if (newDimensions.hasOwnProperty('top')) {
+      if (editingTop) {
         newDimensions.top = newDimensions.top + newDimensions.size - maxSize;
       }
-      if (newDimensions.hasOwnProperty('left')) {
+      if (editingLeft) {
         newDimensions.left = newDimensions.left + newDimensions.size - maxSize;
       }
       newDimensions.size = maxSize;
     } else if (newDimensions.size < this.MIN_DIMENSION) {
-      if (newDimensions.hasOwnProperty('top')) {
+      if (editingTop) {
         newDimensions.top = newDimensions.top + newDimensions.size - this.MIN_DIMENSION;
       }
-      if (newDimensions.hasOwnProperty('left')) {
+      if (editingLeft) {
         newDimensions.left = newDimensions.left + newDimensions.size - this.MIN_DIMENSION;
       }
       newDimensions.size = this.MIN_DIMENSION;

+ 6 - 6
tests/js/spec/components/avatar.spec.jsx

@@ -1,5 +1,5 @@
 import React from 'react';
-import TestUtils from 'react-addons-test-utils';
+import {shallow} from 'enzyme';
 import Avatar from 'app/components/avatar';
 
 describe('Avatar', function() {
@@ -25,7 +25,7 @@ describe('Avatar', function() {
           avatarUuid: '2d641b5d-8c74-44de-9cb6-fbd54701b35e'
         }
       });
-      let avatar = TestUtils.renderIntoDocument(<Avatar user={user}/>);
+      let avatar = shallow(<Avatar user={user}/>).instance();
       this.sandbox.stub(avatar, 'buildGravatarUrl');
       this.sandbox.stub(avatar, 'buildProfileUrl');
       avatar.renderImg();
@@ -40,7 +40,7 @@ describe('Avatar', function() {
           avatarUuid: '2d641b5d-8c74-44de-9cb6-fbd54701b35e'
         }
       });
-      let avatar = TestUtils.renderIntoDocument(<Avatar user={user}/>);
+      let avatar = shallow(<Avatar user={user}/>).instance();
       this.sandbox.stub(avatar, 'buildGravatarUrl');
       this.sandbox.stub(avatar, 'buildProfileUrl');
       avatar.renderImg();
@@ -55,7 +55,7 @@ describe('Avatar', function() {
           avatarUuid: '2d641b5d-8c74-44de-9cb6-fbd54701b35e'
         }
       });
-      let avatar = TestUtils.renderIntoDocument(<Avatar user={user}/>);
+      let avatar = shallow(<Avatar user={user}/>).instance();
       this.sandbox.stub(avatar, 'buildGravatarUrl');
       this.sandbox.stub(avatar, 'buildProfileUrl');
       avatar.renderImg();
@@ -64,7 +64,7 @@ describe('Avatar', function() {
     });
 
     it('should show a gravatar when no avatar type is set and user has an email address', function() {
-      let avatar = TestUtils.renderIntoDocument(<Avatar user={USER}/>);
+      let avatar = shallow(<Avatar user={USER}/>).instance();
       this.sandbox.stub(avatar, 'buildGravatarUrl');
       this.sandbox.stub(avatar, 'buildProfileUrl');
       avatar.renderImg();
@@ -75,7 +75,7 @@ describe('Avatar', function() {
     it('should not show a gravatar when no avatar type is set and user has no email address', function() {
       let user = Object.assign({}, USER);
       delete user.email;
-      let avatar = TestUtils.renderIntoDocument(<Avatar user={user}/>);
+      let avatar = shallow(<Avatar user={user}/>).instance();
       this.sandbox.stub(avatar, 'buildGravatarUrl');
       this.sandbox.stub(avatar, 'buildProfileUrl');
       avatar.renderImg();