blob: f45f5ae2e75466e07e6b4b72f1f5b44b615ae611 [file] [log] [blame]
/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import '../../../test/common-test-setup';
import './gr-change-metadata';
import {fixture, html} from '@open-wc/testing';
// @ts-ignore
import {visualDiff} from '@web/test-runner-visual-regression';
import {GrChangeMetadata} from './gr-change-metadata';
import {
createAccountDetailWithId,
createCommit,
createConfig,
createParsedChange,
createServerInfo,
} from '../../../test/test-data-generators';
import {testResolver} from '../../../test/common-test-setup';
import {userModelToken} from '../../../models/user/user-model';
import {configModelToken} from '../../../models/config/config-model';
import {changeModelToken} from '../../../models/change/change-model';
import {relatedChangesModelToken} from '../../../models/change/related-changes-model';
import {visualDiffDarkTheme} from '../../../test/test-utils';
import {
CommitId,
Hashtag,
NumericChangeId,
RevisionPatchSetNum,
Timestamp,
TopicName,
} from '../../../types/common';
import {LoadingStatus, ParsedChangeInfo} from '../../../types/types';
suite('gr-change-metadata screenshot tests', () => {
let element: GrChangeMetadata;
setup(async () => {
const configModel = testResolver(configModelToken);
const userModel = testResolver(userModelToken);
const changeModel = testResolver(changeModelToken);
testResolver(relatedChangesModelToken);
configModel.setState({
serverConfig: createServerInfo(),
repoConfig: createConfig(),
});
changeModel.setState({
change: createParsedChange(),
loadingStatus: LoadingStatus.LOADED,
});
userModel.setState({
account: createAccountDetailWithId(),
accountLoaded: true,
});
element = await fixture<GrChangeMetadata>(
html`<gr-change-metadata></gr-change-metadata>`
);
await element.updateComplete;
});
test('normal view', async () => {
await visualDiff(element, 'gr-change-metadata');
await visualDiffDarkTheme(element, 'gr-change-metadata-dark');
});
test('show all sections with more data', async () => {
const changeModel = testResolver(changeModelToken);
const detailedChange: ParsedChangeInfo = {
...createParsedChange(),
topic: 'my-topic' as TopicName,
hashtags: ['my-hashtag' as Hashtag],
cherry_pick_of_change: 123 as NumericChangeId,
cherry_pick_of_patch_set: 1 as RevisionPatchSetNum,
submitted: '2015-12-25 18:43:40.383000000' as Timestamp,
revert_of: 456 as NumericChangeId,
};
detailedChange.revisions[
detailedChange.current_revision
].commit!.parents.push({...createCommit(), commit: 'p2' as CommitId});
changeModel.setState({
change: detailedChange,
loadingStatus: LoadingStatus.LOADED,
});
element.showAllSections = true;
await element.updateComplete;
await visualDiff(element, 'gr-change-metadata-show-all');
await visualDiffDarkTheme(element, 'gr-change-metadata-show-all-dark');
});
});