|  | /** | 
|  | * @license | 
|  | * Copyright 2017 Google LLC | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  | import '../../../test/common-test-setup'; | 
|  | import './gr-group-audit-log'; | 
|  | import { | 
|  | addListenerForTest, | 
|  | mockPromise, | 
|  | stubRestApi, | 
|  | } from '../../../test/test-utils'; | 
|  | import {GrGroupAuditLog} from './gr-group-audit-log'; | 
|  | import { | 
|  | EncodedGroupId, | 
|  | GroupAuditEventType, | 
|  | GroupInfo, | 
|  | GroupName, | 
|  | } from '../../../types/common'; | 
|  | import { | 
|  | createAccountWithId, | 
|  | createGroupAuditEventInfo, | 
|  | createGroupInfo, | 
|  | } from '../../../test/test-data-generators'; | 
|  | import {PageErrorEvent} from '../../../types/events'; | 
|  | import {fixture, html, assert} from '@open-wc/testing'; | 
|  |  | 
|  | suite('gr-group-audit-log tests', () => { | 
|  | let element: GrGroupAuditLog; | 
|  |  | 
|  | setup(async () => { | 
|  | element = await fixture(html`<gr-group-audit-log></gr-group-audit-log>`); | 
|  | }); | 
|  |  | 
|  | test('render', () => { | 
|  | assert.shadowDom.equal( | 
|  | element, | 
|  | /* HTML */ ` | 
|  | <table class="genericList" id="list"> | 
|  | <tbody> | 
|  | <tr class="headerRow"> | 
|  | <th class="date topHeader">Date</th> | 
|  | <th class="topHeader type">Type</th> | 
|  | <th class="member topHeader">Member</th> | 
|  | <th class="by-user topHeader">By User</th> | 
|  | </tr> | 
|  | <tr class="loading loadingMsg" id="loading"> | 
|  | <td>Loading...</td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | ` | 
|  | ); | 
|  | }); | 
|  |  | 
|  | suite('members', () => { | 
|  | test('test getNameForGroup', () => { | 
|  | let member: GroupInfo = { | 
|  | ...createGroupInfo(), | 
|  | name: 'test-name' as GroupName, | 
|  | }; | 
|  | assert.equal(element.getNameForGroup(member), 'test-name'); | 
|  |  | 
|  | member = createGroupInfo('test-id'); | 
|  | assert.equal(element.getNameForGroup(member), 'test-id'); | 
|  | }); | 
|  |  | 
|  | test('test isGroupEvent', () => { | 
|  | assert.isTrue( | 
|  | element.isGroupEvent( | 
|  | createGroupAuditEventInfo(GroupAuditEventType.ADD_GROUP) | 
|  | ) | 
|  | ); | 
|  | assert.isTrue( | 
|  | element.isGroupEvent( | 
|  | createGroupAuditEventInfo(GroupAuditEventType.REMOVE_GROUP) | 
|  | ) | 
|  | ); | 
|  |  | 
|  | assert.isFalse( | 
|  | element.isGroupEvent( | 
|  | createGroupAuditEventInfo(GroupAuditEventType.ADD_USER) | 
|  | ) | 
|  | ); | 
|  | assert.isFalse( | 
|  | element.isGroupEvent( | 
|  | createGroupAuditEventInfo(GroupAuditEventType.REMOVE_USER) | 
|  | ) | 
|  | ); | 
|  | }); | 
|  | }); | 
|  |  | 
|  | suite('users', () => { | 
|  | test('test getIdForUser', () => { | 
|  | const user = { | 
|  | ...createAccountWithId(12), | 
|  | username: 'test-user', | 
|  | }; | 
|  | assert.equal(element.getIdForUser(user), ' (12)'); | 
|  | }); | 
|  |  | 
|  | test('test _account_id not present', () => { | 
|  | const account = { | 
|  | user: { | 
|  | username: 'test-user', | 
|  | }, | 
|  | }; | 
|  | assert.equal(element.getIdForUser(account.user), ''); | 
|  | }); | 
|  | }); | 
|  |  | 
|  | suite('404', () => { | 
|  | test('fires page-error', async () => { | 
|  | element.groupId = '1' as EncodedGroupId; | 
|  | await element.updateComplete; | 
|  |  | 
|  | const response = {...new Response(), status: 404}; | 
|  | stubRestApi('getGroupAuditLog').callsFake((_group, errFn) => { | 
|  | if (errFn) errFn(response); | 
|  | return Promise.resolve(undefined); | 
|  | }); | 
|  |  | 
|  | const pageErrorCalled = mockPromise(); | 
|  | addListenerForTest(document, 'page-error', e => { | 
|  | assert.deepEqual((e as PageErrorEvent).detail.response, response); | 
|  | pageErrorCalled.resolve(); | 
|  | }); | 
|  |  | 
|  | element.getAuditLogs(); | 
|  | await pageErrorCalled; | 
|  | }); | 
|  | }); | 
|  | }); |