• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mendersoftware / gui / 951400782

pending completion
951400782

Pull #3900

gitlab-ci

web-flow
chore: bump @testing-library/jest-dom from 5.16.5 to 5.17.0

Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 5.16.5 to 5.17.0.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v5.16.5...v5.17.0)

---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Pull Request #3900: chore: bump @testing-library/jest-dom from 5.16.5 to 5.17.0

4446 of 6414 branches covered (69.32%)

8342 of 10084 relevant lines covered (82.73%)

186.0 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

75.0
/src/js/components/common/forms/fileupload.js
1
// Copyright 2021 Northern.tech AS
2
//
3
//    Licensed under the Apache License, Version 2.0 (the "License");
4
//    you may not use this file except in compliance with the License.
5
//    You may obtain a copy of the License at
6
//
7
//        http://www.apache.org/licenses/LICENSE-2.0
8
//
9
//    Unless required by applicable law or agreed to in writing, software
10
//    distributed under the License is distributed on an "AS IS" BASIS,
11
//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
//    See the License for the specific language governing permissions and
13
//    limitations under the License.
14
import React, { useState } from 'react';
15
import Dropzone from 'react-dropzone';
16

17
// material ui
18
import { Clear as ClearIcon, CloudUpload as FileIcon } from '@mui/icons-material';
19
import { IconButton, TextField } from '@mui/material';
20

21
export const FileUpload = ({
22✔
22
  enableContentReading = true,
56✔
23
  fileNameSelection,
24
  onFileChange,
25
  onFileSelect = () => undefined,
3✔
26
  placeholder,
27
  setSnackbar,
28
  style = {}
56✔
29
}) => {
30
  const [filename, setFilename] = useState(fileNameSelection);
58✔
31

32
  const onDrop = (acceptedFiles, rejectedFiles) => {
58✔
33
    if (acceptedFiles.length) {
4!
34
      if (enableContentReading) {
4!
35
        let reader = new FileReader();
4✔
36
        reader.readAsBinaryString(acceptedFiles[0]);
4✔
37
        reader.fileName = acceptedFiles[0].name;
4✔
38
        reader.onload = () => {
4✔
39
          const str = reader.result.replace(/\n|\r/g, '\n');
3✔
40
          onFileChange(str);
3✔
41
        };
42
        reader.onerror = error => {
4✔
43
          console.log('Error: ', error);
×
44
          setFilename();
×
45
        };
46
      }
47
      setFilename(acceptedFiles[0].name);
4✔
48
      onFileSelect(acceptedFiles[0]);
4✔
49
    }
50
    if (rejectedFiles.length) {
4!
51
      setSnackbar(`File '${rejectedFiles[0].name}' was rejected.`);
×
52
    }
53
  };
54

55
  const onClear = () => {
58✔
56
    onFileChange();
×
57
    onFileSelect();
×
58
    setFilename();
×
59
  };
60

61
  return filename ? (
58✔
62
    <div style={style}>
63
      <TextField id="keyfile" value={filename} disabled={true} style={{ color: 'rgba(0, 0, 0, 0.8)', borderBottom: '1px solid rgb(224, 224, 224)' }} />
64
      <IconButton style={{ top: '6px' }} onClick={onClear} size="large">
65
        <ClearIcon />
66
      </IconButton>
67
    </div>
68
  ) : (
69
    <div style={style}>
70
      <Dropzone activeClassName="active" rejectClassName="active" multiple={false} onDrop={onDrop}>
71
        {({ getRootProps, getInputProps }) => (
72
          <div {...getRootProps()} style={{ padding: 15 }} className="dropzone onboard dashboard-placeholder flexbox centered">
29✔
73
            <input {...getInputProps()} />
74
            <FileIcon className="icon" style={{ height: 24, width: 24, verticalAlign: 'middle', marginTop: '-2px' }} />
75
            <div className="margin-left-small" style={{ fontSize: '11pt' }}>
76
              {placeholder}
77
            </div>
78
          </div>
79
        )}
80
      </Dropzone>
81
    </div>
82
  );
83
};
84

85
export default FileUpload;
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc