diff --git a/.github/workflows/test.yml-template b/.github/workflows/test.yml-template new file mode 100644 index 000000000..44ac4e963 --- /dev/null +++ b/.github/workflows/test.yml-template @@ -0,0 +1,29 @@ +name: Test + +on: + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [20.x] + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: npm install + - run: npm start & sleep 5 && npm test + - name: Upload tests report(cypress mochaawesome merged HTML report) + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: report + path: reports diff --git a/README.md b/README.md index a4241d05f..74d3f4033 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ 1. Replace `` with your Github username in the link - - [DEMO LINK](https://.github.io/js_task_generate_table_DOM/) + - [DEMO LINK](https://ivanov-serg.github.io/js_task_generate_table_DOM/) 2. Follow [this instructions](https://mate-academy.github.io/layout_task-guideline/) - Run `npm run test` command to test your code; - Run `npm run test:only -- -n` to run fast test ignoring linter; @@ -14,12 +14,12 @@ Okay, now we know what is a table, and can do some magic. In `main.js`, you already have imported file `people.json`. Variable `people` contains an array of people, you can check it by using `console.log`. Your task today is to convert this array to table rows. -Your layout for start: +Your layout for start: ![Preview](./src/images/preview.png) From the preview, you can see that table has 6 headers, but our data does not contain age and century. Yes, you need to calculate them by yourself. - + ##### Steps to do this challenge: 1) For each person from `people` array create table row with 6 table cells (name, gender, born, died, age, century) 2) Find a table with class `dashboard` in the document. diff --git a/src/scripts/main.js b/src/scripts/main.js index 7d4a5db04..2da8bbe3b 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -357,4 +357,55 @@ const people = [ // eslint-disable-next-line no-console console.log(people); // you can remove it -// write your code here +// знаходимо таблицю (якщо є tbody — краще використовувати його) +const table = + document.querySelector('.dashboard tbody') || + document.querySelector('.dashboard'); + +people.forEach((person) => { + // створюємо рядок + const row = document.createElement('tr'); + + // обчислення + const age = person.died - person.born; + const century = Math.ceil(person.died / 100); + + // створюємо клітинки + const nameCell = document.createElement('td'); + + nameCell.textContent = person.name; + + const sexCell = document.createElement('td'); + + sexCell.textContent = person.sex === 'm' ? 'Male' : 'Female'; + + const bornCell = document.createElement('td'); + + bornCell.textContent = person.born; + + const diedCell = document.createElement('td'); + + diedCell.textContent = person.died; + + const ageCell = document.createElement('td'); + + ageCell.textContent = age; + + const centuryCell = document.createElement('td'); + + centuryCell.textContent = century; + + // додаємо клітинки в рядок + row.append( + nameCell, + + sexCell, + bornCell, + diedCell, + ageCell, + centuryCell, + ); + + // додаємо рядок у таблицю + table.appendChild(row); +});