Skip to content

Commit

Permalink
Merge pull request #189 from trossr32/playwright-integration-tests
Browse files Browse the repository at this point in the history
add playwright integration tests
  • Loading branch information
trossr32 authored Apr 28, 2024
2 parents d7c83c4 + dd3287e commit a39df42
Show file tree
Hide file tree
Showing 34 changed files with 1,735 additions and 14 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/playwright.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Playwright tests
on:
pull_request:
branches: [ staging, main, master ]
types:
- opened
- synchronize
paths:
- '.github/workflows/playwright.yml'
- 'src/**'
- 'tests/playwright/**'
- 'package.json'

schedule:
- cron: '0 6 1,11,21 * *'

workflow_dispatch:

jobs:
test:
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: lts/*

- name: Publish extension to dist folder
run: |
npm ci
npm i grunt -g
grunt playwright
- name: Install test dependencies
run: npm ci
working-directory: tests/playwright

- name: Install playwright browser (chromium)
run: npx playwright install --with-deps chromium
working-directory: tests/playwright

- name: Run playwright tests
run: npx playwright test
working-directory: tests/playwright

- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: tests/playwright/playwright-report/
retention-days: 30
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@

All notable changes to this project will be documented in this file.

## 2.8.8

### Added

- Add playwright tests for site integrations.

### Fixed

- Fix Trakt sonarr link.

## 2.8.7

### Fixed
Expand Down
1 change: 1 addition & 0 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ module.exports = function (grunt) {

// debug group task
grunt.registerTask('debug', ['jshint', 'clean:debug', 'sass', 'copy']);
grunt.registerTask('playwright', ['clean:debug', 'sass', 'copy:release']);

if (process.platform === "win32") {
// release group task
Expand Down
26 changes: 21 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

[![Chrome Web Store](https://img.shields.io/chrome-web-store/v/jmmjjcddjldjdjgckdiokhfokccdnekc?label=Chrome%20web%20store&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADdYAAA3WAZBveZwAAAIISURBVDhPdVLPaxNBFP52tyVpTGPbIImlLVEDtvVWwRZPooJUiLd6WBQFETTtRelV%2FAc8it6s6V0r%2BOsaBD14UwtCwEp%2FYNAejLvZNLuzM9M3s5tgC%2F3g7Xvvm%2Fn2vTczBv7D%2BrydI3eXrEQ2LqS0uJTf%2FZC%2Faof8yemll9tqn0JXSCKb3FOyjCb2gYR%2FPRbemnr2YkXlWkii6%2BQqnfwg%2BJxz12dzVHnFWHx9Lnd%2BdaB2aiu1p5KZOkS%2FkQDbiZkITcYaPCUneiie%2F3TSyZz4nUSSmbAOD6Ln6m186B2GCYlLuS2kt5cB7mmhlH0D3g67Z1J8pd0r8Lno6gXDLsP%2BYuJhdQMPqpuYe2%2BheeSGXlMwaBjLNEpKOK6Ib2MenGNZvPOHUG8GitJYd0K8%2FZWn3emYUWKjqIT6QAR9P056CATNtQ%2BME2eorV1Ila1FMfCD%2F8T0sItMwooZIJs0MTvSAEInZtScsmadtQtFimciCvjjfsXCzEXk00P0kzTuTDGMNpZhiuh0JRX3A76kruM45atkfXqFYFBb%2Bf4ChBSYtP7h8mA2XgECJloknDAflaqq1TJZdzhJgrqzhlZrExfoejrg9P4CxsuZ6cqGnpjEz8ndJGupvINZqpQwo0MJuXDbAb%2FWf6aiXtjeJ0Ztj5G7T1YaTSQKC0dHApqpFobiDbX4mCrV9UYAu%2FF1yscRLQLJAAAAAElFTkSuQmCC&style=plastic&color=brightgreen)](https://chrome.google.com/webstore/detail/sonarrradarrlidarr-autose/jmmjjcddjldjdjgckdiokhfokccdnekc) [![Chrome Web Store](https://img.shields.io/chrome-web-store/users/jmmjjcddjldjdjgckdiokhfokccdnekc?label=users&style=plastic&color=brightgreen)](https://chrome.google.com/webstore/detail/sonarrradarrlidarr-autose/jmmjjcddjldjdjgckdiokhfokccdnekc) [![Chrome Web Store](https://img.shields.io/chrome-web-store/stars/jmmjjcddjldjdjgckdiokhfokccdnekc?label=rating&style=plastic&color=brightgreen)](https://chrome.google.com/webstore/detail/sonarrradarrlidarr-autose/jmmjjcddjldjdjgckdiokhfokccdnekc)<br/>
[![Mozilla Add-on](https://img.shields.io/amo/v/sonarr-radarr-lidarr-search?label=Firefox%20add-ons&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAA4AAAANCAYAAACZ3F9%2FAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAI6SURBVChTfVJNSFRRGD33vjdv3nvOmx9%2FygQRs5yoHAiMyGUGgdlGym2LNjW0SGhjtNB9hJvauAmiMGjTSmhTRBpWi1AzwkZTR0mdmeffzJt5z3e%2F7gyTtIgOXD74OOfcw%2BHD%2F0DZHo3syy%2FkvFBdHYBX579R8obg%2Bf3Y959Q%2BuLh6rYCVp2g0YYkQuoUlNYa1j%2F5jj6e0RE2NxAMWFAVQOAzhNbLWsfXy3y5kaJ7LZdA%2FnN46mm4wevx9Pjb9Iee%2B%2B5mpEvleRiRbJnaBJ8lhu7G2fDI%2FHTlR7od%2F4So04loEaglzKeu0tzUINPcIMzGBZzsG0XDsSVA04hMf4H5XjsXfefqsKN3ggWAozpwKIzjXa%2FZ%2BRuD2LJM5Ow2MIOAXQFkOIPH2mTkE6q3EWuW1QHSEORgtrYD418GUGQJWGEdoV1g%2Fv1Z1Hd%2Fg9i2wMIylTAaee5rW1bYIWDbABZrMDGZwFyGY5k2kVZtZCgPUcxBrMhEfBf0SwGtqzb3PXMlv1aXwo4Ubpm4wiZhFBaxl1mGbf%2BEcGaQCLwB3y6BF6RJyshShs1WyklHksna5rVHRmQP0D0UNAXTogUKJ3SYP6CXS4txeCIGErGh4MjYcEW4GhrgQnVeWQ25XiuaBw%2B4QMAHVPkUWYo8E6cYhqD6CfWI6NbHnpYODmA1dCfoM%2Fch052besjhWtAF5wL%2BvorSjkXMNZ9pFt2KLj2Wsf66nD%2BQBu2Sfg2MToEY56R8Z6S%2BbCo8mKlSJIDf81Pn%2Bw9CHy8AAAAASUVORK5CYII%3D&style=plastic&color=orange)](https://addons.mozilla.org/en-GB/firefox/addon/sonarr-radarr-lidarr-search/) [![Mozilla Add-on](https://img.shields.io/amo/users/sonarr-radarr-lidarr-search?label=users&style=plastic&color=orange)](https://addons.mozilla.org/en-GB/firefox/addon/sonarr-radarr-lidarr-search/) [![Mozilla Add-on](https://img.shields.io/amo/stars/sonarr-radarr-lidarr-search?label=rating&style=plastic&color=orange)](https://addons.mozilla.org/en-GB/firefox/addon/sonarr-radarr-lidarr-search/)<br />
[![](https://img.shields.io/static/v1?label=Edge%20add-ons&message=v2.8.7.0&color=blue&style=plastic&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJdSURBVDhPVVLPaxNBFP7eZJPNNomCqGj1aBGkB8WKF4/iyR4sQqGm4M1TKyoI1T+gf0BBqHhRoQW9CO1BEcUKIhSlh4rx18FKm1q7aZJustmdnZ3xTSj+ePDNDPPeN9+bb4bwT5x4vdqrocYN5HlNsg/oEFF7haj1Ku/UpxdPj77bKcUf4sBCbcQgnTZQRU0KGgk0xTDoIOf4KLjrxsvV77rZcHz+6G3ZJZ5aaFwCzEMDQ0xkApMsEZJ3IuRz6yjl11DIb8LNth45IhmmgQX/EGc/BVW/GPoNmFTB8TLwDvTA2eN2iT3uKnZ5qyh5m7wO4GSSYRF1grHvbz4Wq5VNBIGDUBbQambgL9fQrFS5n5ARMxQjhRAM0lfF2lJ10BajsA/G3c0owThF7mtvOdowZelvVY0OkWoJlWrECSGSOOmEbe8IuT3gC3GbGqZZg1x+e7P95PoMS2D/8wc61cGMUiFkItlNxaoqFqnIa50adKHY18oSiNy2JdnIFVbYwF+QqsFqATqyxYrtx8JofNV6h7i9BUpSUNYb2uFBYGNEoAqtfyKWPmP7hUyiG0w08wxO8GNEEZDJcs8Y3XXx3oglEtUvCKqfIbSH+J4DcaLOvjw+2ySa+HCQs5+FQEnELbjf3oOcPMieZtL7pPUdGL1EacIG6D4k0bnGs1tTwkz2rxtjrmi7nStCW6NY0orxdJnXizAm5sPtm1R4rtmksAMm+2dZoMwagTx8DNqkXM82/w1b12GUG08num7/98m57V4+cUyoaDDn/+jLhA0ScecLpWqOTDrVmLtmfwQH8BseJ1GMK7TIYwAAAABJRU5ErkJggg==)](https://microsoftedge.microsoft.com/addons/detail/sonarrradarrlidarr-auto/aclgfcjonnhgdkinhmmafdbkpegfcnal) ![Edge](https://img.shields.io/static/v1?label=users&message=487&color=blue&style=plastic)
[![](https://img.shields.io/static/v1?label=Edge%20add-ons&message=v2.8.8.0&color=blue&style=plastic&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJdSURBVDhPVVLPaxNBFP7eZJPNNomCqGj1aBGkB8WKF4/iyR4sQqGm4M1TKyoI1T+gf0BBqHhRoQW9CO1BEcUKIhSlh4rx18FKm1q7aZJustmdnZ3xTSj+ePDNDPPeN9+bb4bwT5x4vdqrocYN5HlNsg/oEFF7haj1Ku/UpxdPj77bKcUf4sBCbcQgnTZQRU0KGgk0xTDoIOf4KLjrxsvV77rZcHz+6G3ZJZ5aaFwCzEMDQ0xkApMsEZJ3IuRz6yjl11DIb8LNth45IhmmgQX/EGc/BVW/GPoNmFTB8TLwDvTA2eN2iT3uKnZ5qyh5m7wO4GSSYRF1grHvbz4Wq5VNBIGDUBbQambgL9fQrFS5n5ARMxQjhRAM0lfF2lJ10BajsA/G3c0owThF7mtvOdowZelvVY0OkWoJlWrECSGSOOmEbe8IuT3gC3GbGqZZg1x+e7P95PoMS2D/8wc61cGMUiFkItlNxaoqFqnIa50adKHY18oSiNy2JdnIFVbYwF+QqsFqATqyxYrtx8JofNV6h7i9BUpSUNYb2uFBYGNEoAqtfyKWPmP7hUyiG0w08wxO8GNEEZDJcs8Y3XXx3oglEtUvCKqfIbSH+J4DcaLOvjw+2ySa+HCQs5+FQEnELbjf3oOcPMieZtL7pPUdGL1EacIG6D4k0bnGs1tTwkz2rxtjrmi7nStCW6NY0orxdJnXizAm5sPtm1R4rtmksAMm+2dZoMwagTx8DNqkXM82/w1b12GUG08num7/98m57V4+cUyoaDDn/+jLhA0ScecLpWqOTDrVmLtmfwQH8BseJ1GMK7TIYwAAAABJRU5ErkJggg==)](https://microsoftedge.microsoft.com/addons/detail/sonarrradarrlidarr-auto/aclgfcjonnhgdkinhmmafdbkpegfcnal) ![Edge](https://img.shields.io/static/v1?label=users&message=487&color=blue&style=plastic)

[![Playwright tests](https://github.com/trossr32/sonarr-radarr-lidarr-autosearch-browser-extension/actions/workflows/playwright.yml/badge.svg)](https://github.com/trossr32/sonarr-radarr-lidarr-autosearch-browser-extension/actions/workflows/playwright.yml)

## Overview

Expand All @@ -26,7 +28,7 @@ Leave a review:

[![Chrome Web Store](https://img.shields.io/chrome-web-store/v/jmmjjcddjldjdjgckdiokhfokccdnekc?label=Chrome%20web%20store&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADdYAAA3WAZBveZwAAAIISURBVDhPdVLPaxNBFP52tyVpTGPbIImlLVEDtvVWwRZPooJUiLd6WBQFETTtRelV%2FAc8it6s6V0r%2BOsaBD14UwtCwEp%2FYNAejLvZNLuzM9M3s5tgC%2F3g7Xvvm%2Fn2vTczBv7D%2BrydI3eXrEQ2LqS0uJTf%2FZC%2Faof8yemll9tqn0JXSCKb3FOyjCb2gYR%2FPRbemnr2YkXlWkii6%2BQqnfwg%2BJxz12dzVHnFWHx9Lnd%2BdaB2aiu1p5KZOkS%2FkQDbiZkITcYaPCUneiie%2F3TSyZz4nUSSmbAOD6Ln6m186B2GCYlLuS2kt5cB7mmhlH0D3g67Z1J8pd0r8Lno6gXDLsP%2BYuJhdQMPqpuYe2%2BheeSGXlMwaBjLNEpKOK6Ib2MenGNZvPOHUG8GitJYd0K8%2FZWn3emYUWKjqIT6QAR9P056CATNtQ%2BME2eorV1Ila1FMfCD%2F8T0sItMwooZIJs0MTvSAEInZtScsmadtQtFimciCvjjfsXCzEXk00P0kzTuTDGMNpZhiuh0JRX3A76kruM45atkfXqFYFBb%2Bf4ChBSYtP7h8mA2XgECJloknDAflaqq1TJZdzhJgrqzhlZrExfoejrg9P4CxsuZ6cqGnpjEz8ndJGupvINZqpQwo0MJuXDbAb%2FWf6aiXtjeJ0Ztj5G7T1YaTSQKC0dHApqpFobiDbX4mCrV9UYAu%2FF1yscRLQLJAAAAAElFTkSuQmCC&style=plastic&color=brightgreen)](https://chrome.google.com/webstore/detail/sonarrradarrlidarr-autose/jmmjjcddjldjdjgckdiokhfokccdnekc)<br/>
[![Mozilla Add-on](https://img.shields.io/amo/v/sonarr-radarr-lidarr-search?label=Firefox%20add-ons&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAA4AAAANCAYAAACZ3F9%2FAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAI6SURBVChTfVJNSFRRGD33vjdv3nvOmx9%2FygQRs5yoHAiMyGUGgdlGym2LNjW0SGhjtNB9hJvauAmiMGjTSmhTRBpWi1AzwkZTR0mdmeffzJt5z3e%2F7gyTtIgOXD74OOfcw%2BHD%2F0DZHo3syy%2FkvFBdHYBX579R8obg%2Bf3Y959Q%2BuLh6rYCVp2g0YYkQuoUlNYa1j%2F5jj6e0RE2NxAMWFAVQOAzhNbLWsfXy3y5kaJ7LZdA%2FnN46mm4wevx9Pjb9Iee%2B%2B5mpEvleRiRbJnaBJ8lhu7G2fDI%2FHTlR7od%2F4So04loEaglzKeu0tzUINPcIMzGBZzsG0XDsSVA04hMf4H5XjsXfefqsKN3ggWAozpwKIzjXa%2FZ%2BRuD2LJM5Ow2MIOAXQFkOIPH2mTkE6q3EWuW1QHSEORgtrYD418GUGQJWGEdoV1g%2Fv1Z1Hd%2Fg9i2wMIylTAaee5rW1bYIWDbABZrMDGZwFyGY5k2kVZtZCgPUcxBrMhEfBf0SwGtqzb3PXMlv1aXwo4Ubpm4wiZhFBaxl1mGbf%2BEcGaQCLwB3y6BF6RJyshShs1WyklHksna5rVHRmQP0D0UNAXTogUKJ3SYP6CXS4txeCIGErGh4MjYcEW4GhrgQnVeWQ25XiuaBw%2B4QMAHVPkUWYo8E6cYhqD6CfWI6NbHnpYODmA1dCfoM%2Fch052besjhWtAF5wL%2BvorSjkXMNZ9pFt2KLj2Wsf66nD%2BQBu2Sfg2MToEY56R8Z6S%2BbCo8mKlSJIDf81Pn%2Bw9CHy8AAAAASUVORK5CYII%3D&style=plastic&color=orange)](https://addons.mozilla.org/en-GB/firefox/addon/sonarr-radarr-lidarr-search/)<br />
[![](https://img.shields.io/static/v1?label=Edge%20add-ons&message=v2.8.7.0&color=blue&style=plastic&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJdSURBVDhPVVLPaxNBFP7eZJPNNomCqGj1aBGkB8WKF4/iyR4sQqGm4M1TKyoI1T+gf0BBqHhRoQW9CO1BEcUKIhSlh4rx18FKm1q7aZJustmdnZ3xTSj+ePDNDPPeN9+bb4bwT5x4vdqrocYN5HlNsg/oEFF7haj1Ku/UpxdPj77bKcUf4sBCbcQgnTZQRU0KGgk0xTDoIOf4KLjrxsvV77rZcHz+6G3ZJZ5aaFwCzEMDQ0xkApMsEZJ3IuRz6yjl11DIb8LNth45IhmmgQX/EGc/BVW/GPoNmFTB8TLwDvTA2eN2iT3uKnZ5qyh5m7wO4GSSYRF1grHvbz4Wq5VNBIGDUBbQambgL9fQrFS5n5ARMxQjhRAM0lfF2lJ10BajsA/G3c0owThF7mtvOdowZelvVY0OkWoJlWrECSGSOOmEbe8IuT3gC3GbGqZZg1x+e7P95PoMS2D/8wc61cGMUiFkItlNxaoqFqnIa50adKHY18oSiNy2JdnIFVbYwF+QqsFqATqyxYrtx8JofNV6h7i9BUpSUNYb2uFBYGNEoAqtfyKWPmP7hUyiG0w08wxO8GNEEZDJcs8Y3XXx3oglEtUvCKqfIbSH+J4DcaLOvjw+2ySa+HCQs5+FQEnELbjf3oOcPMieZtL7pPUdGL1EacIG6D4k0bnGs1tTwkz2rxtjrmi7nStCW6NY0orxdJnXizAm5sPtm1R4rtmksAMm+2dZoMwagTx8DNqkXM82/w1b12GUG08num7/98m57V4+cUyoaDDn/+jLhA0ScecLpWqOTDrVmLtmfwQH8BseJ1GMK7TIYwAAAABJRU5ErkJggg==)](https://microsoftedge.microsoft.com/addons/detail/sonarrradarrlidarr-auto/aclgfcjonnhgdkinhmmafdbkpegfcnal)
[![](https://img.shields.io/static/v1?label=Edge%20add-ons&message=v2.8.8.0&color=blue&style=plastic&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJdSURBVDhPVVLPaxNBFP7eZJPNNomCqGj1aBGkB8WKF4/iyR4sQqGm4M1TKyoI1T+gf0BBqHhRoQW9CO1BEcUKIhSlh4rx18FKm1q7aZJustmdnZ3xTSj+ePDNDPPeN9+bb4bwT5x4vdqrocYN5HlNsg/oEFF7haj1Ku/UpxdPj77bKcUf4sBCbcQgnTZQRU0KGgk0xTDoIOf4KLjrxsvV77rZcHz+6G3ZJZ5aaFwCzEMDQ0xkApMsEZJ3IuRz6yjl11DIb8LNth45IhmmgQX/EGc/BVW/GPoNmFTB8TLwDvTA2eN2iT3uKnZ5qyh5m7wO4GSSYRF1grHvbz4Wq5VNBIGDUBbQambgL9fQrFS5n5ARMxQjhRAM0lfF2lJ10BajsA/G3c0owThF7mtvOdowZelvVY0OkWoJlWrECSGSOOmEbe8IuT3gC3GbGqZZg1x+e7P95PoMS2D/8wc61cGMUiFkItlNxaoqFqnIa50adKHY18oSiNy2JdnIFVbYwF+QqsFqATqyxYrtx8JofNV6h7i9BUpSUNYb2uFBYGNEoAqtfyKWPmP7hUyiG0w08wxO8GNEEZDJcs8Y3XXx3oglEtUvCKqfIbSH+J4DcaLOvjw+2ySa+HCQs5+FQEnELbjf3oOcPMieZtL7pPUdGL1EacIG6D4k0bnGs1tTwkz2rxtjrmi7nStCW6NY0orxdJnXizAm5sPtm1R4rtmksAMm+2dZoMwagTx8DNqkXM82/w1b12GUG08num7/98m57V4+cUyoaDDn/+jLhA0ScecLpWqOTDrVmLtmfwQH8BseJ1GMK7TIYwAAAABJRU5ErkJggg==)](https://microsoftedge.microsoft.com/addons/detail/sonarrradarrlidarr-auto/aclgfcjonnhgdkinhmmafdbkpegfcnal)

[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/K3K22CEIT)

Expand Down Expand Up @@ -66,7 +68,7 @@ If any of the sites on this tab are set as enabled then this extension will atte
## Create package
Uses grunt as a task runner, run the following from the root directory to build:

```
```powershell
npm i
grunt release
```
Expand All @@ -75,9 +77,23 @@ The grunt release config executes a Powershell script to run web-ext, this can b

## Tests

Next to no test coverage at the moment and is currently just a development tool to assert code changes, but uses <a href='https://jestjs.io' target='_blank'>Jest</a> for any available:

### Playwright
Site integration tests can be found in the tests/playwright directory. The tests expect the dist directory to be populated with the latest build. The tests can be run using the following from the root directory:

```powershell
npm i
# npm i grunt -g # if grunt isn't already installed uncomment
grunt playwright
cd tests/playwright
npm i
npx playwright install --with-deps chromium
npx playwright test
```

### Unit tests
Next to no unit test coverage at the moment and is currently just a development tool to assert code changes, but uses <a href='https://jestjs.io' target='_blank'>Jest</a> for any available:

```powershell
npm i
npm run test
```
Expand Down
10 changes: 5 additions & 5 deletions src/content/js/content_script.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
}
],
integrations = [
/* sonarr version which doesn't work with id search */
/* sonarr imdb */
{
id: 'imdb',
rules: [
Expand Down Expand Up @@ -53,7 +53,7 @@
imgStyles: 'width: 35px; margin: -8px 10px 0 0;'
}
},
/* radarr version which works with id search */
/* radarr imdb */
{
id: 'imdb',
rules: [
Expand Down Expand Up @@ -229,15 +229,15 @@
}
],
search: {
containerSelector: '.external > li > a[id="external-link-tvdb"]',
containerSelector: '.external > li > a[id="external-link-imdb"]',
selectorType: 'href',
modifiers: [
{
type: 'regex-match',
pattern: /\/(?<search>\d{2,10})/i
pattern: /(?<search>tt\d{5,10})/i
}, {
type: 'prepend',
var: 'tvdb:'
var: 'imdb:'
}
]
},
Expand Down
2 changes: 1 addition & 1 deletion src/content/js/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ let sessionId,
}, {
id: 'lidarr',
domain: 'http://my.lidarr-url.domain:8686',
enabled: false,
enabled: true,
searchPath: '/add/search/',
searchInputSelector: 'input[name="searchBox"]',
menuText: 'Search Lidarr',
Expand Down
2 changes: 1 addition & 1 deletion src/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "Sonarr/Radarr/Lidarr autosearch",
"description": "Exposes a context menu that enables direct searching for tv shows, movies and other text in Sonarr, Radarr, Lidarr and Readarr.",
"version": "2.8.7.0",
"version": "2.8.8.0",
"browser_action": {
"default_icon": "content/assets/images/SonarrRadarrLidarr128.png",
"default_popup": "popup.html"
Expand Down
2 changes: 1 addition & 1 deletion src/options.html
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ <h5 style="margin-bottom: 15px;">
<div class="row justify-content-center">
<div class="col-12" style="text-align: center">
<div class="my-3">
<i>Version 2.8.7</i>
<i>Version 2.8.8</i>
</div>
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion src/popup.html
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
<hr />

<div class="popupRow text-center">
<i style="font-size: 0.8rem;">Version 2.8.7</i>
<i style="font-size: 0.8rem;">Version 2.8.8</i>
</div>
</div>
</body>
Expand Down
5 changes: 5 additions & 0 deletions tests/playwright/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
node_modules/
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
1 change: 1 addition & 0 deletions tests/playwright/constants.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export const iconDataLocator = 'a[data-servarr-icon="true"]';
39 changes: 39 additions & 0 deletions tests/playwright/fixtures.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import { test as base, chromium, type BrowserContext } from '@playwright/test';
import path from 'path';

export const test = base.extend<{
context: BrowserContext;
extensionId: string;
}>({
context: async ({ }, use) => {
const pathToExtension = path.resolve(__dirname, '../../dist');
console.log('Loading extension from', pathToExtension);
const context = await chromium.launchPersistentContext('', {
headless: false,
args: [
`--headless=new`,
`--disable-extensions-except=${pathToExtension}`,
`--load-extension=${pathToExtension}`,
],
});
await use(context);
await context.close();
},
extensionId: async ({ context }, use) => {
// for manifest v2:
let [background] = context.backgroundPages()
if (!background)
background = await context.waitForEvent('backgroundpage')

// for manifest v3:
/*
let [background] = context.serviceWorkers();
if (!background)
background = await context.waitForEvent('serviceworker');
*/

const extensionId = background.url().split('/')[2];
await use(extensionId);
},
});
export const expect = test.expect;
20 changes: 20 additions & 0 deletions tests/playwright/helpers.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* Get the expected Sonarr URL for a given add new path query
* @param query
* @returns expected Sonarr URL
*/
export const getExpectedSonarrUrl = (query: string): string => `http://my.sonarr-url.domain:8989/add/new/${query}`;

/**
* Get the expected Radarr URL for a given add new path query
* @param query
* @returns expected Radarr URL
*/
export const getExpectedRadarrUrl = (query: string): string => `http://my.radarr-url.domain:7878/add/new/${query}`;

/**
* Get the expected Lidarr URL for a given search query
* @param query
* @returns expected Lidarr URL
*/
export const getExpectedLidarrUrl = (query: string): string => `http://my.lidarr-url.domain:8686/add/search/${query}`;
Loading

0 comments on commit a39df42

Please sign in to comment.