forked from mystiq/hydrogen-web
fix gap failing to fill 2nd time + unit regression test
This commit is contained in:
parent
15048bd9c3
commit
56495c9d13
2 changed files with 29 additions and 1 deletions
|
@ -72,3 +72,31 @@ export class GapTile extends SimpleTile {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
import {FragmentBoundaryEntry} from "../../../../../matrix/room/timeline/entries/FragmentBoundaryEntry.js";
|
||||
export function tests() {
|
||||
return {
|
||||
"uses updated token to fill": async assert => {
|
||||
let currentToken = 5;
|
||||
const fragment = {
|
||||
id: 0,
|
||||
previousToken: currentToken,
|
||||
roomId: "!abc"
|
||||
};
|
||||
const room = {
|
||||
async fillGap(entry) {
|
||||
console.log(entry.token, currentToken);
|
||||
assert.equal(entry.token, currentToken);
|
||||
currentToken += 1;
|
||||
const newEntry = entry.withUpdatedFragment(Object.assign({}, fragment, {previousToken: currentToken}));
|
||||
tile.updateEntry(newEntry);
|
||||
}
|
||||
};
|
||||
const tile = new GapTile({entry: new FragmentBoundaryEntry(fragment, true), room});
|
||||
await tile.fill();
|
||||
await tile.fill();
|
||||
await tile.fill();
|
||||
assert.equal(currentToken, 8);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -85,7 +85,7 @@ export class SimpleTile extends ViewModel {
|
|||
// update received for already included (falls within sort keys) entry
|
||||
updateEntry(entry, param) {
|
||||
const renderedAsRedacted = this.shape === "redacted";
|
||||
if (entry.isRedacted !== renderedAsRedacted) {
|
||||
if (!entry.isGap && entry.isRedacted !== renderedAsRedacted) {
|
||||
// recreate the tile if the entry becomes redacted
|
||||
return UpdateAction.Replace("shape");
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue