18 lines
947 B
TypeScript
18 lines
947 B
TypeScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { announcementMotion } from '../../YouleNexus/assets/framework/presentation/lobby-model.ts';
|
|
|
|
test('announcement follows source byte width, speed, right entry and looping left exit',()=>{
|
|
const initial=announcementMotion('公告ABC',645,0);
|
|
assert.equal(initial.textWidth,105); // gblen=7, Game_Config.Notice.width=15
|
|
assert.equal(initial.duration,7.5); // source speed=0.1 px/ms
|
|
assert.equal(initial.left,645);
|
|
assert.equal(announcementMotion('公告ABC',645,1).left,545);
|
|
assert.ok(announcementMotion('公告ABC',645,7.49).left < -103);
|
|
assert.equal(announcementMotion('公告ABC',645,7.5).left,645);
|
|
assert.equal(announcementMotion('公告ABC',645,15).left,645);
|
|
assert.equal(announcementMotion('',645,0).visible,false);
|
|
assert.equal(announcementMotion(' ',645,0).visible,true);
|
|
assert.throws(()=>announcementMotion('公告',0,0),/width/);
|
|
});
|