Merge pull request #126 from idrawjs/dev

test: update testing of board
This commit is contained in:
大深海 2021-12-29 23:29:17 +08:00 committed by GitHub
commit 180e191e55
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 104 additions and 49 deletions

View file

@ -1,48 +0,0 @@
// // TODO
// import Board from '../src';
// import { getData } from './data';
// const opts = {
// width: 600,
// height: 400,
// contextWidth: 600,
// contextHeight: 400,
// devicePixelRatio: 4
// }
// test('@idraw/board: event.on("scale")', async () => {
// document.body.innerHTML = `
// <div id="mount"></div>
// `;
// const mount = document.querySelector('#mount') as HTMLDivElement;
// const board = new Board(mount, opts);
// const data = await execBoard(board, opts);
// const salceNum = 2
// expect(data).toBe(salceNum);
// });
// function execBoard(board: Board, opts: any): Promise<any> {
// return new Promise((resolve) => {
// const data = getData();
// const ctx = board.getContext();
// board.clear();
// ctx.clearRect(0, 0, opts.width, opts.height);
// ctx.setFillStyle('#ffffff');
// ctx.fillRect(0, 0, opts.width, opts.height);
// data.elements.forEach(ele => {
// ctx.setFillStyle(ele.desc.color);
// ctx.fillRect(ele.x, ele.y, ele.w, ele.h);
// });
// // board.on('scale', (scaleNum) => {
// // resolve(scaleNum);
// // })
// board.scale(2);
// board.scrollX(-600);
// board.scrollY(-400);
// board.draw();
// })
// }

View file

@ -0,0 +1,22 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`@idraw/board: src/lib/style getStyle 1`] = `
Object {
"height": "20px",
"margin-top": "123px",
"overflow": "auto",
"width": "12px",
}
`;
exports[`@idraw/board: src/lib/style setDomTransform 1`] = `
<div
style="transform: matrix(1, 2, -1, 1, 80, 90);"
/>
`;
exports[`@idraw/board: src/lib/style setStyle 1`] = `
<div
style="width:12px;height:20px;overflow:auto;margin-top:123px;"
/>
`;

View file

@ -0,0 +1,81 @@
import {
mergeCSS2StyleAttr, setStyle, getStyle, getDomTransform,
setDomTransform,
} from './../../src/lib/style';
describe('@idraw/board: src/lib/style', () => {
test('mergeCSS2StyleAttr', () => {
const str = mergeCSS2StyleAttr({
'width': '12px',
'height': '20px',
'overflow': 'auto',
'margin-top': '123px',
});
expect(str).toStrictEqual('width:12px; height:20px; overflow:auto; margin-top:123px;');
});
test('setStyle', () => {
const div = document.createElement('div');
setStyle(div, {
'width': '12px',
'height': '20px',
'overflow': 'auto',
'margin-top': '123px',
});
expect(div).toMatchSnapshot();
});
test('getStyle', () => {
const div = document.createElement('div');
setStyle(div, {
'width': '12px',
'height': '20px',
'overflow': 'auto',
'margin-top': '123px',
});
expect(getStyle(div)).toMatchSnapshot({
'width': '12px',
'height': '20px',
'overflow': 'auto',
'margin-top': '123px',
});
});
test('setDomTransform', () => {
// transform: matrix( scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY() )
// matrix(1, 2, -1, 1, 80, 80)
const div = document.createElement('div');
setDomTransform(div, {
scaleX: 1,
skewY: 2,
skewX: -1,
scaleY: 1,
translateX: 80,
translateY: 90,
});
expect(div).toMatchSnapshot();
})
test('getDomTransform', () => {
// transform: matrix( scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY() )
// matrix(1, 2, -1, 1, 80, 80)
const div = document.createElement('div');
setDomTransform(div, {
scaleX: 1,
skewY: 2,
skewX: -1,
scaleY: 1,
translateX: 80,
translateY: 90,
});
expect(getDomTransform(div)).toStrictEqual({
scaleX: 1,
skewY: 2,
skewX: -1,
scaleY: 1,
translateX: 80,
translateY: 90,
});
})
})

View file

@ -13,7 +13,7 @@ export const mergeCSS2StyleAttr = function(
cssList.push(`${cssKey}:${cssVal}`);
}
}
const styleAttr = cssList.join('; ');
const styleAttr = cssList.join('; ') + ';';
return styleAttr;
};