|
5 | 5 |
|
6 | 6 | import * as assert from 'assert';
|
7 | 7 | import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
|
8 |
| -import { colorRegistry, toISCMHistoryItemViewModelArray } from 'vs/workbench/contrib/scm/browser/scmHistory'; |
| 8 | +import { ColorIdentifier } from 'vs/platform/theme/common/colorUtils'; |
| 9 | +import { colorRegistry, historyItemGroupBase, historyItemGroupLocal, historyItemGroupRemote, toISCMHistoryItemViewModelArray } from 'vs/workbench/contrib/scm/browser/scmHistory'; |
9 | 10 | import { ISCMHistoryItem } from 'vs/workbench/contrib/scm/common/history';
|
10 | 11 |
|
11 | 12 | suite('toISCMHistoryItemViewModelArray', () => {
|
@@ -500,4 +501,92 @@ suite('toISCMHistoryItemViewModelArray', () => {
|
500 | 501 | assert.strictEqual(viewModels[6].outputSwimlanes[0].id, 'h');
|
501 | 502 | assert.strictEqual(viewModels[6].outputSwimlanes[0].color, colorRegistry[0]);
|
502 | 503 | });
|
| 504 | + |
| 505 | + /** |
| 506 | + * * a(b) [topic] |
| 507 | + * * b(c) |
| 508 | + * * c(d) [origin/topic] |
| 509 | + * * d(e) |
| 510 | + * * e(f,g) |
| 511 | + * |\ |
| 512 | + * | * g(h) [origin/main] |
| 513 | + */ |
| 514 | + test('graph with color map', () => { |
| 515 | + const models = [ |
| 516 | + { id: 'a', parentIds: ['b'], labels: [{ title: 'topic' }] }, |
| 517 | + { id: 'b', parentIds: ['c'] }, |
| 518 | + { id: 'c', parentIds: ['d'], labels: [{ title: 'origin/topic' }] }, |
| 519 | + { id: 'd', parentIds: ['e'] }, |
| 520 | + { id: 'e', parentIds: ['f', 'g'] }, |
| 521 | + { id: 'g', parentIds: ['h'], labels: [{ title: 'origin/main' }] } |
| 522 | + ] as ISCMHistoryItem[]; |
| 523 | + |
| 524 | + const colorMap = new Map<string, ColorIdentifier>([ |
| 525 | + ['topic', historyItemGroupLocal], |
| 526 | + ['origin/topic', historyItemGroupRemote], |
| 527 | + ['origin/main', historyItemGroupBase], |
| 528 | + ]); |
| 529 | + |
| 530 | + const viewModels = toISCMHistoryItemViewModelArray(models, colorMap); |
| 531 | + |
| 532 | + assert.strictEqual(viewModels.length, 6); |
| 533 | + |
| 534 | + // node a |
| 535 | + assert.strictEqual(viewModels[0].inputSwimlanes.length, 0); |
| 536 | + |
| 537 | + assert.strictEqual(viewModels[0].outputSwimlanes.length, 1); |
| 538 | + assert.strictEqual(viewModels[0].outputSwimlanes[0].id, 'b'); |
| 539 | + assert.strictEqual(viewModels[0].outputSwimlanes[0].color, historyItemGroupLocal); |
| 540 | + |
| 541 | + // node b |
| 542 | + assert.strictEqual(viewModels[1].inputSwimlanes.length, 1); |
| 543 | + assert.strictEqual(viewModels[1].inputSwimlanes[0].id, 'b'); |
| 544 | + assert.strictEqual(viewModels[1].inputSwimlanes[0].color, historyItemGroupLocal); |
| 545 | + |
| 546 | + assert.strictEqual(viewModels[1].outputSwimlanes.length, 1); |
| 547 | + assert.strictEqual(viewModels[1].outputSwimlanes[0].id, 'c'); |
| 548 | + assert.strictEqual(viewModels[1].outputSwimlanes[0].color, historyItemGroupLocal); |
| 549 | + |
| 550 | + // node c |
| 551 | + assert.strictEqual(viewModels[2].inputSwimlanes.length, 1); |
| 552 | + assert.strictEqual(viewModels[2].inputSwimlanes[0].id, 'c'); |
| 553 | + assert.strictEqual(viewModels[2].inputSwimlanes[0].color, historyItemGroupLocal); |
| 554 | + |
| 555 | + assert.strictEqual(viewModels[2].outputSwimlanes.length, 1); |
| 556 | + assert.strictEqual(viewModels[2].outputSwimlanes[0].id, 'd'); |
| 557 | + assert.strictEqual(viewModels[2].outputSwimlanes[0].color, historyItemGroupRemote); |
| 558 | + |
| 559 | + // node d |
| 560 | + assert.strictEqual(viewModels[3].inputSwimlanes.length, 1); |
| 561 | + assert.strictEqual(viewModels[3].inputSwimlanes[0].id, 'd'); |
| 562 | + assert.strictEqual(viewModels[3].inputSwimlanes[0].color, historyItemGroupRemote); |
| 563 | + |
| 564 | + assert.strictEqual(viewModels[3].outputSwimlanes.length, 1); |
| 565 | + assert.strictEqual(viewModels[3].outputSwimlanes[0].id, 'e'); |
| 566 | + assert.strictEqual(viewModels[3].outputSwimlanes[0].color, historyItemGroupRemote); |
| 567 | + |
| 568 | + // node e |
| 569 | + assert.strictEqual(viewModels[4].inputSwimlanes.length, 1); |
| 570 | + assert.strictEqual(viewModels[4].inputSwimlanes[0].id, 'e'); |
| 571 | + assert.strictEqual(viewModels[4].inputSwimlanes[0].color, historyItemGroupRemote); |
| 572 | + |
| 573 | + assert.strictEqual(viewModels[4].outputSwimlanes.length, 2); |
| 574 | + assert.strictEqual(viewModels[4].outputSwimlanes[0].id, 'f'); |
| 575 | + assert.strictEqual(viewModels[4].outputSwimlanes[0].color, historyItemGroupRemote); |
| 576 | + assert.strictEqual(viewModels[4].outputSwimlanes[1].id, 'g'); |
| 577 | + assert.strictEqual(viewModels[4].outputSwimlanes[1].color, historyItemGroupBase); |
| 578 | + |
| 579 | + // node g |
| 580 | + assert.strictEqual(viewModels[5].inputSwimlanes.length, 2); |
| 581 | + assert.strictEqual(viewModels[5].inputSwimlanes[0].id, 'f'); |
| 582 | + assert.strictEqual(viewModels[5].inputSwimlanes[0].color, historyItemGroupRemote); |
| 583 | + assert.strictEqual(viewModels[5].inputSwimlanes[1].id, 'g'); |
| 584 | + assert.strictEqual(viewModels[5].inputSwimlanes[1].color, historyItemGroupBase); |
| 585 | + |
| 586 | + assert.strictEqual(viewModels[5].outputSwimlanes.length, 2); |
| 587 | + assert.strictEqual(viewModels[5].outputSwimlanes[0].id, 'f'); |
| 588 | + assert.strictEqual(viewModels[5].outputSwimlanes[0].color, historyItemGroupRemote); |
| 589 | + assert.strictEqual(viewModels[5].outputSwimlanes[1].id, 'h'); |
| 590 | + assert.strictEqual(viewModels[5].outputSwimlanes[1].color, historyItemGroupBase); |
| 591 | + }); |
503 | 592 | });
|
0 commit comments