Browse Source

添加SPoint单元测试用例。

sybotan 5 years ago
parent
commit
5980cce371

+ 1 - 1
saga-web-base/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@saga-web/base",
-    "version": "2.1.14",
+    "version": "2.1.15",
     "description": "上格云Web基础库。",
     "main": "lib/index.js",
     "types": "lib/index.d.js",

+ 23 - 0
saga-web-base/src/extensions/SObjectExtension.ts

@@ -0,0 +1,23 @@
+/**
+ * 定义与实现 Object 扩展方法
+ *
+ * @author  庞利祥
+ */
+declare global {
+    /**
+     * 定义 Object 对象扩展方法
+     */
+    interface Object {
+        /** 定义 Object 对象 toJson() 扩展方法 */
+        toJson(): string;
+    }
+}
+
+/**
+ * 实现 Object 对象 toJson() 扩展方法
+ */
+Object.prototype.toJson = function (): string {
+    return JSON.stringify(this);
+};
+
+export {};

+ 2 - 0
saga-web-base/src/index.ts

@@ -1,3 +1,5 @@
+import "./extensions/SObjectExtension";
+
 import { SMouseButton } from "./enums/SMouseButton";
 import { STouchState } from "./enums/STouchState";
 export { SMouseButton, STouchState };

+ 45 - 0
saga-web-draw/__tests__/types/SPoint.test.ts

@@ -0,0 +1,45 @@
+import { SPoint } from "../../src";
+
+test("构造函数", () => {
+    expect(new SPoint().toJson()).toBe("{\"x\":0,\"y\":0}");
+    expect(new SPoint(10, 10).toJson()).toBe("{\"x\":10,\"y\":10}");
+});
+
+test("属性修改", () => {
+    const p = new SPoint();
+    expect(p.toJson()).toBe("{\"x\":0,\"y\":0}");
+
+    p.y = 10;
+    expect(p.toJson()).toBe("{\"x\":0,\"y\":10}");
+    p.x = -10;
+    expect(p.toJson()).toBe("{\"x\":-10,\"y\":10}");
+
+    p.setPoint(-100, -30);
+    expect(p.toJson()).toBe("{\"x\":-100,\"y\":-30}");
+
+    p.setPoint(new SPoint(-5, -12));
+    expect(p.toJson()).toBe("{\"x\":-5,\"y\":-12}");
+});
+
+test("setPoint()", () => {
+    const p = new SPoint();
+    p.setPoint(-100, -30);
+    expect(p.toJson()).toBe("{\"x\":-100,\"y\":-30}");
+
+    p.setPoint(new SPoint(-5, -12));
+    expect(p.toJson()).toBe("{\"x\":-5,\"y\":-12}");
+});
+
+test("manhattanLength()", () => {
+    const p = new SPoint(10, 20);
+    expect(p.manhattanLength()).toBe(30);
+
+    p.setPoint(-10, 20);
+    expect(p.manhattanLength()).toBe(30);
+
+    p.setPoint(10, -20);
+    expect(p.manhattanLength()).toBe(30);
+
+    p.setPoint(-10, -20);
+    expect(p.manhattanLength()).toBe(30);
+});

+ 1 - 1
saga-web-draw/package.json

@@ -33,7 +33,7 @@
         "typescript": "^3.5.3"
     },
     "dependencies": {
-        "@saga-web/base": "^2.1.12"
+        "@saga-web/base": "^2.1.15"
     },
     "jest": {
         "setupFiles": [

+ 1 - 1
saga-web-draw/src/engines/SCanvasPaintEngine.ts

@@ -491,7 +491,7 @@ export class SCanvasPaintEngine extends SPaintEngine {
     private setFont(): void {
         this._canvas.font = `${this.state.font.size}px ${this.state.font.name}`;
         this.setTextAlign(this.state.font.textAlign);
-        this.setBaseLine(this.state.font.textBaseLine);
+        // this.setBaseLine(this.state.font.textBaseLine);
         this.setTextDirection(this.state.font.textDirection);
     } // Function setFont()