Skip to content

Commit

Permalink
🐛 fix: fix resizingConstraint func and update test
Browse files Browse the repository at this point in the history
  • Loading branch information
arvinxx committed Apr 7, 2022
1 parent 4d3ea25 commit c39f843
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 2 deletions.
30 changes: 29 additions & 1 deletion src/models/Base/BaseLayer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -179,19 +179,47 @@ abstract class BaseLayer {
this.frame.rotation = deg;
}

/**
* 将 resize 设为固定宽高
*/
setFixedWidthAndHeight() {
this.setResizingConstraint(
ResizingConstraint.Width,
ResizingConstraint.Height,
);
}

/**
* resize 添加固定宽高
*/
addFixedWidthAndHeight() {
this.addResizingConstraints(
ResizingConstraint.Width,
ResizingConstraint.Height,
);
}

/**
* 设置调整尺寸的相关参数
* @param constraints
*/
setResizingConstraint(...constraints: ResizingConstraint[]) {
this.resizingConstraints = this.resizingConstraints.concat(constraints);
this.resizingConstraints = constraints;
this.resizingConstraint = calcResizingConstraint(...constraints);
}

/**
* 添加调整尺寸的相关参数
* @param constraints
*/
addResizingConstraints(...constraints: ResizingConstraint[]) {
// 判断一下是否包含新变量, 如果不包含则加入数组
constraints.forEach((c) => {
if (!this.resizingConstraints.includes(c)) {
this.resizingConstraints.push(c);
}
});

this.resizingConstraint = calcResizingConstraint(
...this.resizingConstraints,
);
Expand Down
32 changes: 31 additions & 1 deletion tests/__tests__/model/Base/BaseLayer.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,48 @@ describe('Base图层 类', () => {
});

test('setResizingConstraint', () => {
const a = new TestGroup();
const { Top, Left, Bottom } = ResizingConstraint;
const resizingConstraint = [Top, Left];

a.setResizingConstraint(...resizingConstraint);

// eslint-disable-next-line no-bitwise
expect(a.resizingConstraint).toBe(Top & Left);
expect(a.resizingConstraints).toEqual([Top, Left]);

a.setResizingConstraint(Bottom);
expect(a.resizingConstraint).toBe(Bottom);
expect(a.resizingConstraints).toEqual([Bottom]);
});

test('addFixedWidthAndHeight', () => {
const a = new TestGroup();
const { Top, Left, Width, Height } = ResizingConstraint;
const resizingConstraint = [Top, Left];

a.resizingConstraints = [];
// just test it
a.addFixedWidthAndHeight();
// eslint-disable-next-line no-bitwise
expect(a.resizingConstraint).toEqual(Width & Height);
expect(a.resizingConstraints).toEqual([Width, Height]);

a.setResizingConstraint(...resizingConstraint);

// eslint-disable-next-line no-bitwise
expect(a.resizingConstraint).toBe(Top & Left);
expect(a.resizingConstraints).toEqual([Top, Left]);

a.setFixedWidthAndHeight();
a.addFixedWidthAndHeight();
// eslint-disable-next-line no-bitwise
expect(a.resizingConstraint).toBe(Top & Left & Width & Height);
expect(a.resizingConstraints).toEqual([Top, Left, Width, Height]);

a.addFixedWidthAndHeight();
// eslint-disable-next-line no-bitwise
expect(a.resizingConstraint).toBe(Top & Left & Width & Height);
expect(a.resizingConstraints).toEqual([Top, Left, Width, Height]);
});

test('setIsLocked', () => {
Expand Down

0 comments on commit c39f843

Please sign in to comment.