blob: 7c515fcce0a337da41e2a511e078e4ef56d064b2 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import React from 'react';
import {assert} from 'chai';
import {cleanup, render} from '@testing-library/react';
import AttachmentUploader from 'react/issue-wizard/AttachmentUploader.tsx';
describe('IssueWizard Attachment Uploader', () => {
afterEach(cleanup);
it('render', () => {
render(<AttachmentUploader files={[]} setFiles={()=>{}}/>)
const uploadButton = document.getElementById('file-uploader');
assert.isNotNull(uploadButton);
});
it('render files name', () => {
const files = [
{name: '1.txt'},
{name: '2.txt'},
{name: '3.txt'},
];
render(<AttachmentUploader files={files} setFiles={()=>{}}/>)
const items = document.querySelectorAll('li');
assert.equal(items.length, 3);
assert.include(items[0].textContent, '1.txt');
assert.include(items[1].textContent, '2.txt');
assert.include(items[2].textContent, '3.txt');
});
it('remove files', () => {
let files = [
{name: '1.txt'},
{name: '2.txt'},
{name: '3.txt'},
];
render(<AttachmentUploader files={files} setFiles={(f: Array<any>)=>{files = f;}} setSubmitEnable={()=>{}}/>)
const items = document.querySelectorAll('li');
assert.equal(items.length, 3);
const removeButton = items[1].querySelector('button');
assert.isNotNull(removeButton);
removeButton?.click();
assert.equal(files.length, 2);
assert.equal(files[0].name, '1.txt');
assert.equal(files[1].name, '3.txt');
})
});