Skip to content

Commit c961a86

Browse files
committed
【ut】fix ut
1 parent 91c2fa4 commit c961a86

File tree

3 files changed

+34
-6
lines changed

3 files changed

+34
-6
lines changed

src/common/commontypes/CircularUtil.js

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
const CircularUtil = {
22
lastSeqID: 0,
3+
parentUtil: null,
4+
setRelativeParentUtil: function (util) {
5+
CircularUtil.parentUtil = util;
6+
},
37
createUniqueID: function (prefix) {
4-
if (prefix == null) {
5-
prefix = 'id_';
6-
}
7-
CircularUtil.lastSeqID += 1;
8-
return prefix + CircularUtil.lastSeqID;
8+
return createUniqueID(prefix, CircularUtil.parentUtil || CircularUtil);
99
},
1010
extend: function (destination, source) {
1111
destination = destination || {};
@@ -39,4 +39,12 @@ const CircularUtil = {
3939
}
4040
};
4141

42+
function createUniqueID(prefix, util) {
43+
if (prefix == null) {
44+
prefix = 'id_';
45+
}
46+
util.lastSeqID += 1;
47+
return prefix + util.lastSeqID;
48+
}
49+
4250
export { CircularUtil };

src/common/commontypes/Util.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ const Util = {
555555
* @type {number}
556556
* @default 0
557557
*/
558-
lastSeqID: CircularUtil.lastSeqID,
558+
lastSeqID: 0,
559559

560560
/**
561561
* @memberOf CommonUtil
@@ -1255,4 +1255,6 @@ function canBeJsonified(str) {
12551255
}
12561256
}
12571257

1258+
CircularUtil.setRelativeParentUtil(Util);
1259+
12581260
export { Util, Browser, INCHES_PER_UNIT, METERS_PER_INCH, DOTS_PER_INCH, IS_GECKO };

test/common/commontypes/UtilSpec.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Util } from '../../../src/common/commontypes/Util';
2+
import { CircularUtil } from '../../../src/common/commontypes/CircularUtil';
23
import { Pixel } from '../../../src/common/commontypes/Pixel';
34
import { Size } from '../../../src/common/commontypes/Size';
45
import { Bounds } from '../../../src/common/commontypes/Bounds';
@@ -400,4 +401,21 @@ describe('Util', () => {
400401
expect(lastSeqId + 2).toBe(Util.lastSeqID);
401402
})
402403

404+
it('createUniqueID no parentUtil', () => {
405+
CircularUtil.setRelativeParentUtil(null);
406+
expect(CircularUtil.lastSeqID).toBe(0);
407+
let id = CircularUtil.createUniqueID();
408+
let lastSeqId = CircularUtil.lastSeqID;
409+
expect(id).toContain('id_1');
410+
expect(id).toBe(`id_${lastSeqId}`);
411+
id = CircularUtil.createUniqueID('custom_');
412+
expect(id).toContain('custom_');
413+
expect(id).toBe(`custom_${lastSeqId + 1}`);
414+
id = CircularUtil.createUniqueID();
415+
expect(id).toContain('id_');
416+
expect(id).toBe(`id_${lastSeqId + 2}`);
417+
expect(lastSeqId + 2).toBe(CircularUtil.lastSeqID);
418+
CircularUtil.setRelativeParentUtil(Util);
419+
})
420+
403421
});

0 commit comments

Comments
 (0)