All files App.js

100% Statements 16/16
100% Branches 0/0
100% Functions 9/9
100% Lines 15/15

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63        1x     10x 10x 10x 2x 2x 3x 6x                   2x   2x     10x 1x 1x       10x                         12x                              
import { useEffect, useState } from 'react';
import axios from 'axios';
import StatusColumn from './StatusColumn';
import './App.css';
const SERBER_URL = 'http://localhost:8081';
 
function App() {
  const [items, setItems] = useState({});
  const [products, setProducts] = useState([]);
  useEffect(() => {
    const request = () =>
      products.forEach((product) => {
        axios.get(`${SERBER_URL}/temperature/${product.id}`).then((response) =>
          setItems((prevItems) => ({
            ...prevItems,
            [product.id]: {
              ...product,
              ...response.data,
            },
          }))
        );
      });
 
    setInterval(request, 5000);
 
    request();
  }, [products, products.length]);
 
  useEffect(() => {
    axios.get(`${SERBER_URL}/productList`).then((resp) => {
      setProducts(resp.data);
    });
  }, []);
 
  return (
    <div className="App">
      <h2>Beers</h2>
      <table>
        <thead>
          <tr>
            <th align="left">Product</th>
            <th align="left">Temperature</th>
            <th align="left">Status</th>
          </tr>
        </thead>
        <tbody data-cy={'productList'}>
          {Object.keys(items).map((itemKey) => (
            <tr key={items[itemKey].id} id={`pid${items[itemKey].id}`}>
              <td width={150}>{items[itemKey].name}</td>
              <td width={150}>{items[itemKey].temperature}</td>
              <td width={150} data-cy={'statusCol'}>
                <StatusColumn status={items[itemKey].status} />
              </td>
            </tr>
          ))}
        </tbody>
      </table>
    </div>
  );
}
 
export default App;