Skip to content

Commit

Permalink
feat: add fixtures for mock requests, skipping tests
Browse files Browse the repository at this point in the history
  • Loading branch information
TomatoVan committed Apr 2, 2024
1 parent ce8c139 commit 3c8fbfa
Show file tree
Hide file tree
Showing 5 changed files with 194 additions and 1 deletion.
3 changes: 2 additions & 1 deletion cypress/e2e/articles/article-details.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ describe('to article details page', () => {
cy.addComment('text');
cy.getByTestId('CommentCard.Content').should('have.length', 1);
});
it('article details rating', () => {
it('article details rating (fixtures)', () => {
cy.intercept('GET', '**/articles/*', { fixture: 'article-details.json' });
cy.getByTestId('ArticlesDetails.Info');
cy.getByTestId('RatingCard').scrollIntoView();
cy.setRate(3, 'feedback test');
Expand Down
10 changes: 10 additions & 0 deletions cypress/e2e/articles/article-list.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,14 @@ describe('to articles page', () => {
cy.getByTestId('ArticleList').should('exist');
cy.getByTestId('ArticleListItem').should('have.length.greaterThan', 3);
});

it('example with mocks (fixtures)', () => {
cy.intercept('GET', '**/articles?*', { fixture: 'articles.json' });
cy.getByTestId('ArticleList').should('exist');
cy.getByTestId('ArticleListItem').should('have.length.greaterThan', 3);
});

it.skip('example of skipping tests', () => {
cy.getByTestId('daasdadsad').should('exist');
});
});
33 changes: 33 additions & 0 deletions cypress/fixtures/article-details.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"id": "7",
"title": "Ruby news",
"subtitle": "Что нового в JS за 2022 год?",
"img": "https://res.cloudinary.com/practicaldev/image/fetch/s--oqV3akcU--/c_imagga_scale,f_auto,fl_progressive,h_500,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/i/pgnw91fs7tpxn0wyeqh2.jpg",
"views": 100,
"createdAt": "21.02.2022",
"userId": "1",
"type": [
"IT"
],
"blocks": [
{
"id": "1",
"type": "TEXT",
"title": "Заголовок этого блока",
"paragraphs": [
"Программа, которую по традиции называют «Hello, world!», очень проста. Она выводит куда-либо фразу «Hello, world!», или другую подобную, средствами некоего языка.",
"JavaScript — это язык, программы на котором можно выполнять в разных средах. В нашем случае речь идёт о браузерах и о серверной платформе Node.js. Если до сих пор вы не написали ни строчки кода на JS и читаете этот текст в браузере, на настольном компьютере, это значит, что вы буквально в считанных секундах от своей первой JavaScript-программы.",
"Существуют и другие способы запуска JS-кода в браузере. Так, если говорить об обычном использовании программ на JavaScript, они загружаются в браузер для обеспечения работы веб-страниц. Как правило, код оформляют в виде отдельных файлов с расширением .js, которые подключают к веб-страницам, но программный код можно включать и непосредственно в код страницы. Всё это делается с помощью тега <script>. Когда браузер обнаруживает такой код, он выполняет его. Подробности о теге script можно посмотреть на сайте w3school.com. В частности, рассмотрим пример, демонстрирующий работу с веб-страницей средствами JavaScript, приведённый на этом ресурсе. Этот пример можно запустить и средствами данного ресурса (ищите кнопку Try it Yourself), но мы поступим немного иначе. А именно, создадим в каком-нибудь текстовом редакторе (например — в VS Code или в Notepad++) новый файл, который назовём hello.html, и добавим в него следующий код:"
]
}
],
"user": {
"id": "1",
"username": "admin",
"password": "123",
"roles": [
"ADMIN"
],
"avatar": "https://yakutsk.ru/wp-content/uploads/2022/07/12/bystrov_haker.jpeg"
}
}
134 changes: 134 additions & 0 deletions cypress/fixtures/articles.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
[
{
"id": "7",
"title": "Ruby news",
"subtitle": "Что нового в JS за 2022 год?",
"img": "https://res.cloudinary.com/practicaldev/image/fetch/s--oqV3akcU--/c_imagga_scale,f_auto,fl_progressive,h_500,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/i/pgnw91fs7tpxn0wyeqh2.jpg",
"views": 100,
"createdAt": "21.02.2022",
"userId": "1",
"type": [
"IT"
],
"blocks": [
{
"id": "1",
"type": "TEXT",
"title": "Заголовок этого блока",
"paragraphs": [
"Программа, которую по традиции называют «Hello, world!», очень проста. Она выводит куда-либо фразу «Hello, world!», или другую подобную, средствами некоего языка.",
"JavaScript — это язык, программы на котором можно выполнять в разных средах. В нашем случае речь идёт о браузерах и о серверной платформе Node.js. Если до сих пор вы не написали ни строчки кода на JS и читаете этот текст в браузере, на настольном компьютере, это значит, что вы буквально в считанных секундах от своей первой JavaScript-программы.",
"Существуют и другие способы запуска JS-кода в браузере. Так, если говорить об обычном использовании программ на JavaScript, они загружаются в браузер для обеспечения работы веб-страниц. Как правило, код оформляют в виде отдельных файлов с расширением .js, которые подключают к веб-страницам, но программный код можно включать и непосредственно в код страницы. Всё это делается с помощью тега <script>. Когда браузер обнаруживает такой код, он выполняет его. Подробности о теге script можно посмотреть на сайте w3school.com. В частности, рассмотрим пример, демонстрирующий работу с веб-страницей средствами JavaScript, приведённый на этом ресурсе. Этот пример можно запустить и средствами данного ресурса (ищите кнопку Try it Yourself), но мы поступим немного иначе. А именно, создадим в каком-нибудь текстовом редакторе (например — в VS Code или в Notepad++) новый файл, который назовём hello.html, и добавим в него следующий код:"
]
}
],
"user": {
"id": "1",
"username": "admin",
"password": "123",
"roles": [
"ADMIN"
],
"avatar": "https://yakutsk.ru/wp-content/uploads/2022/07/12/bystrov_haker.jpeg"
}
},
{
"id": "4",
"title": "Scala news",
"subtitle": "Что нового в JS за 2022 год?",
"img": "https://coursefreedl.com/wp-content/uploads/2020/01/Scala-Zero-To-Hero-Complete-Guide.jpg",
"views": 10222,
"createdAt": "24.01.2022",
"userId": "1",
"type": [
"IT"
],
"blocks": [
{
"id": "1",
"type": "TEXT",
"title": "Заголовок этого блока",
"paragraphs": [
"Программа, которую по традиции называют «Hello, world!», очень проста. Она выводит куда-либо фразу «Hello, world!», или другую подобную, средствами некоего языка.",
"JavaScript — это язык, программы на котором можно выполнять в разных средах. В нашем случае речь идёт о браузерах и о серверной платформе Node.js. Если до сих пор вы не написали ни строчки кода на JS и читаете этот текст в браузере, на настольном компьютере, это значит, что вы буквально в считанных секундах от своей первой JavaScript-программы.",
"Существуют и другие способы запуска JS-кода в браузере. Так, если говорить об обычном использовании программ на JavaScript, они загружаются в браузер для обеспечения работы веб-страниц. Как правило, код оформляют в виде отдельных файлов с расширением .js, которые подключают к веб-страницам, но программный код можно включать и непосредственно в код страницы. Всё это делается с помощью тега <script>. Когда браузер обнаруживает такой код, он выполняет его. Подробности о теге script можно посмотреть на сайте w3school.com. В частности, рассмотрим пример, демонстрирующий работу с веб-страницей средствами JavaScript, приведённый на этом ресурсе. Этот пример можно запустить и средствами данного ресурса (ищите кнопку Try it Yourself), но мы поступим немного иначе. А именно, создадим в каком-нибудь текстовом редакторе (например — в VS Code или в Notepad++) новый файл, который назовём hello.html, и добавим в него следующий код:"
]
}
],
"user": {
"id": "1",
"username": "admin",
"password": "123",
"roles": [
"ADMIN"
],
"avatar": "https://yakutsk.ru/wp-content/uploads/2022/07/12/bystrov_haker.jpeg"
}
},
{
"id": "3",
"title": "Kotlin news 2019",
"subtitle": "Что нового в JS за 2022 год?",
"img": "https://miro.medium.com/max/1200/1*FNakkrty3kjOvNU8m5iQfw.png",
"views": 94002,
"createdAt": "26.02.2019",
"userId": "1",
"type": [
"IT"
],
"blocks": [
{
"id": "1",
"type": "TEXT",
"title": "Заголовок этого блока",
"paragraphs": [
"Программа, которую по традиции называют «Hello, world!», очень проста. Она выводит куда-либо фразу «Hello, world!», или другую подобную, средствами некоего языка.",
"JavaScript — это язык, программы на котором можно выполнять в разных средах. В нашем случае речь идёт о браузерах и о серверной платформе Node.js. Если до сих пор вы не написали ни строчки кода на JS и читаете этот текст в браузере, на настольном компьютере, это значит, что вы буквально в считанных секундах от своей первой JavaScript-программы.",
"Существуют и другие способы запуска JS-кода в браузере. Так, если говорить об обычном использовании программ на JavaScript, они загружаются в браузер для обеспечения работы веб-страниц. Как правило, код оформляют в виде отдельных файлов с расширением .js, которые подключают к веб-страницам, но программный код можно включать и непосредственно в код страницы. Всё это делается с помощью тега <script>. Когда браузер обнаруживает такой код, он выполняет его. Подробности о теге script можно посмотреть на сайте w3school.com. В частности, рассмотрим пример, демонстрирующий работу с веб-страницей средствами JavaScript, приведённый на этом ресурсе. Этот пример можно запустить и средствами данного ресурса (ищите кнопку Try it Yourself), но мы поступим немного иначе. А именно, создадим в каком-нибудь текстовом редакторе (например — в VS Code или в Notepad++) новый файл, который назовём hello.html, и добавим в него следующий код:"
]
}
],
"user": {
"id": "1",
"username": "admin",
"password": "123",
"roles": [
"ADMIN"
],
"avatar": "https://yakutsk.ru/wp-content/uploads/2022/07/12/bystrov_haker.jpeg"
}
},
{
"id": "5",
"title": "Golang news",
"subtitle": "Что нового в JS за 2022 год?",
"img": "https://cdn-front.kwork.ru/pics/t3/88/16350941-1630390388.jpg",
"views": 10222,
"createdAt": "26.02.2020",
"userId": "1",
"type": [
"IT"
],
"blocks": [
{
"id": "1",
"type": "TEXT",
"title": "Заголовок этого блока",
"paragraphs": [
"Программа, которую по традиции называют «Hello, world!», очень проста. Она выводит куда-либо фразу «Hello, world!», или другую подобную, средствами некоего языка.",
"JavaScript — это язык, программы на котором можно выполнять в разных средах. В нашем случае речь идёт о браузерах и о серверной платформе Node.js. Если до сих пор вы не написали ни строчки кода на JS и читаете этот текст в браузере, на настольном компьютере, это значит, что вы буквально в считанных секундах от своей первой JavaScript-программы.",
"Существуют и другие способы запуска JS-кода в браузере. Так, если говорить об обычном использовании программ на JavaScript, они загружаются в браузер для обеспечения работы веб-страниц. Как правило, код оформляют в виде отдельных файлов с расширением .js, которые подключают к веб-страницам, но программный код можно включать и непосредственно в код страницы. Всё это делается с помощью тега <script>. Когда браузер обнаруживает такой код, он выполняет его. Подробности о теге script можно посмотреть на сайте w3school.com. В частности, рассмотрим пример, демонстрирующий работу с веб-страницей средствами JavaScript, приведённый на этом ресурсе. Этот пример можно запустить и средствами данного ресурса (ищите кнопку Try it Yourself), но мы поступим немного иначе. А именно, создадим в каком-нибудь текстовом редакторе (например — в VS Code или в Notepad++) новый файл, который назовём hello.html, и добавим в него следующий код:"
]
}
],
"user": {
"id": "1",
"username": "admin",
"password": "123",
"roles": [
"ADMIN"
],
"avatar": "https://yakutsk.ru/wp-content/uploads/2022/07/12/bystrov_haker.jpeg"
}
}
]
15 changes: 15 additions & 0 deletions cypress/support/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,20 @@ Cypress.Commands.addAll(profileCommands);
Cypress.Commands.addAll(articleCommands);
Cypress.Commands.addAll(commentsCommands);
Cypress.Commands.addAll(ratingCommands);
// Cypress.Commands.overwrite('intercept', () => {
// const { FIXTURE_MODE } = process.env;
// const fixtureName = req.METHOD + req.url + hash(req.body);
// if (FIXTURE_MODE === 'READ') {
// readFixture(fixtureName);
// }
// if (FIXTURE_MODE === 'WRITE') {
// createFixture(fixtureName, req.body);
// }
// if (FIXTURE_MODE === 'API') {
// // use not fixtures, but real requests
//
// }
// // for ci use fixtures, for prod tests use real requests
// });

export {};

0 comments on commit 3c8fbfa

Please sign in to comment.