Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: moved constants to separated files #128

Merged
merged 27 commits into from
Jul 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
7ae7c0c
fix: Link of a scoped package not opened correctly (issue #97)
rzarviv Jun 5, 2023
561746f
Merge branch 'fix-scoped-packages-deps.dev'
rzarviv Jun 6, 2023
79722d2
Merge branch 'os-scar:master' into master
rzarviv Jun 7, 2023
5694868
Merge branch 'master' of https://github.com/rzarviv/overlay
rzarviv Jun 11, 2023
34a8bd1
Merge branch 'master' of https://github.com/rzarviv/overlay
rzarviv Jun 11, 2023
5def71d
Merge branch 'master' of https://github.com/rzarviv/overlay
rzarviv Jun 15, 2023
a519e74
Merge branch 'master' of https://github.com/rzarviv/overlay
rzarviv Jun 20, 2023
26b59b4
- added e2e tests as described in issue #111
rzarviv Jun 22, 2023
d4e4999
Merge branch 'master' into feature/e2e-tests
rzarviv Jun 22, 2023
017e802
merged with master
rzarviv Jun 22, 2023
7d25668
Merge branch 'feature/e2e-tests' of https://github.com/rzarviv/overla…
rzarviv Jun 22, 2023
eccc8ee
Merge branch 'master' of https://github.com/rzarviv/overlay
rzarviv Jun 22, 2023
aad27bb
Merge branch 'master' into feature/e2e-tests
rzarviv Jun 22, 2023
9202457
Merge branch 'master' into feature/e2e-tests
baruchiro Jun 22, 2023
50f9d61
Merge branch 'master' of https://github.com/rzarviv/overlay
rzarviv Jun 25, 2023
b1ab68a
Merge branch 'master' into feature/e2e-tests
rzarviv Jun 25, 2023
8151a35
- moved variables from `e2e-tests-constants.js` to `advisories.js` an…
rzarviv Jun 25, 2023
793e589
Merge branch 'master' of https://github.com/rzarviv/overlay
rzarviv Jun 25, 2023
da30e7e
-Merge branch 'master' into feature/e2e-tests
rzarviv Jun 25, 2023
882cf95
fixed tests
rzarviv Jun 25, 2023
565a85c
- moved tag names and advisories to `globals.js`
rzarviv Jun 25, 2023
63be970
refactor globals.js and imports
Jun 25, 2023
d00bc1a
- moved `overlay-indicator` to `globals,js`
rzarviv Jul 2, 2023
3b4d268
add indicatorTagName
Jul 13, 2023
8991059
selectors should be in tests context
Jul 13, 2023
761060e
name package report
Jul 13, 2023
044a7f0
Merge branch 'master' into feature/e2e-tests
baruchiro Jul 13, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions e2e/e2e-tests-constants.js

This file was deleted.

14 changes: 7 additions & 7 deletions e2e/npm.spec.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { test, Expect } from '../fixtures.js';
import { PACKAGE_REPORT_SELECTOR } from './e2e-tests-constants.js';
import { Expect, test } from '../fixtures.js';
import { packageReportTagName } from '../src/globals.js';

test.describe('npm', () => {
test('Package Report is visible in npmjs.com', async ({ page }) => {
Expand All @@ -12,7 +12,7 @@ test.describe('npm', () => {
});

// get the package name from overlay popup
const overlayPackageInfoComponent = page.locator(PACKAGE_REPORT_SELECTOR);
const overlayPackageInfoComponent = page.locator(packageReportTagName);
await Expect(overlayPackageInfoComponent).toHaveAttribute('package-name', packageName);
});

Expand All @@ -25,7 +25,7 @@ test.describe('npm', () => {
});

// get the package name from overlay popup
let overlayPackageInfoComponent = page.locator(PACKAGE_REPORT_SELECTOR);
let overlayPackageInfoComponent = page.locator(packageReportTagName);
await Expect(overlayPackageInfoComponent).toHaveAttribute('package-name', packageName);

// use the search bar to find the @angular/cli package
Expand All @@ -38,7 +38,7 @@ test.describe('npm', () => {
await getSearchResultInDropDown.click();

// check that overlay's title has changed to @angular/cli
overlayPackageInfoComponent = page.locator(PACKAGE_REPORT_SELECTOR);
overlayPackageInfoComponent = page.locator(packageReportTagName);
await Expect(overlayPackageInfoComponent).toHaveAttribute('package-name', packageName);
});

Expand All @@ -58,8 +58,8 @@ test.describe('npm', () => {
const getSearchResultInDropDown = page.locator(`li[aria-label="${packageName}"]`);
await getSearchResultInDropDown.click();

// check that overlay's title has changed to @angular/cli
const overlayPackageInfoComponent = page.locator(PACKAGE_REPORT_SELECTOR);
// check that overlay's title is "@ngneat/spectator"
const overlayPackageInfoComponent = page.locator(packageReportTagName);
await Expect(overlayPackageInfoComponent).toHaveAttribute('package-name', packageName);
});
});
11 changes: 6 additions & 5 deletions e2e/pypi.spec.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import { test, Expect } from '../fixtures.js';
import { PACKAGE_REPORT_SELECTOR, TOOLTIP_SOURCES_SELECTOR } from './e2e-tests-constants.js';
import { Expect, test } from '../fixtures.js';
import { packageReportTagName } from '../src/globals.js';
import { tooltipSourceSelector } from './selectors.js';

test.describe('pypi', () => {
test('Package Report is visible in PyPI.org', async ({ page }) => {
await page.goto('https://pypi.org/project/pandas/', {
waitUntil: 'domcontentloaded',
});

const overlayPackageInfoComponent = page.locator(PACKAGE_REPORT_SELECTOR);
const overlayPackageInfoComponent = page.locator(packageReportTagName);
await Expect(overlayPackageInfoComponent).toHaveAttribute('package-name', 'pandas');
});

Expand All @@ -16,11 +17,11 @@ test.describe('pypi', () => {
waitUntil: 'domcontentloaded',
});

const overlayPackageInfoComponent = page.locator(PACKAGE_REPORT_SELECTOR);
const overlayPackageInfoComponent = page.locator(packageReportTagName);
await Expect(overlayPackageInfoComponent).toHaveAttribute('package-name', 'pandas');

// check that overlay display 3 advisories in pypi - OpenSSF Scorecard, Snyk, and Debricked (currently Socket.dev not working)
const overlayTooltipSources = page.locator(TOOLTIP_SOURCES_SELECTOR);
const overlayTooltipSources = page.locator(tooltipSourceSelector);
await overlayTooltipSources.highlight();
await Expect(overlayTooltipSources).toHaveCount(3);
});
Expand Down
1 change: 1 addition & 0 deletions e2e/selectors.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export const tooltipSourceSelector = '.overlay-indicator__tooltip__sources > .overlay-indicator__tooltip__source';
15 changes: 8 additions & 7 deletions e2e/stackoverflow.spec.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { test, Expect } from '../fixtures.js';
import { NUM_OF_ADVISORIES, TOOLTIP_SOURCES_SELECTOR } from './e2e-tests-constants.js';
import { Expect, test } from '../fixtures.js';
import { advisoriesNames } from '../src/globals.js';
import { tooltipSourceSelector } from './selectors.js';

const stackOverflowLink = 'https://stackoverflow.com/questions/9023672/how-do-i-resolve-cannot-find-module-error-using-node-js';

Expand All @@ -17,15 +18,15 @@ test.describe('stackoverflow', () => {
await Expect(overlayModuleName).toBeVisible();

// check that all advisories are shown in the tooltip's advisories list
const advisories = overlayModuleName.locator(TOOLTIP_SOURCES_SELECTOR);
await Expect(advisories).toHaveCount(NUM_OF_ADVISORIES);
const advisories = overlayModuleName.locator(tooltipSourceSelector);
await Expect(advisories).toHaveCount(advisoriesNames.length);
});

test('popup page', async ({ page, extensionId }) => {
// find chrome extension popup
await page.goto(`chrome-extension://${extensionId}/popup/index.html`);
const advisoroes = page.locator('main > div');
await Expect(advisoroes).toHaveCount(NUM_OF_ADVISORIES);
await Expect(advisoroes).toHaveCount(advisoriesNames.length);

// find snyk's checkbox and uncheck it
const snykCheckbox = advisoroes.getByText('Show snyk').locator('input');
Expand All @@ -40,9 +41,9 @@ test.describe('stackoverflow', () => {
await moduleNameLink.hover();

const overlayModuleName = page.locator('.overlay-tooltip__tooltip .overlay-indicator__tooltip[data-testid="module_name"]');
const advisories = overlayModuleName.locator(TOOLTIP_SOURCES_SELECTOR);
const advisories = overlayModuleName.locator(tooltipSourceSelector);

// check that snyk is not shown in the advisories list
await Expect(advisories).toHaveCount(NUM_OF_ADVISORIES - 1);
await Expect(advisories).toHaveCount(advisoriesNames.length - 1);
});
});
7 changes: 4 additions & 3 deletions src/content/content.npmjs.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import { packageReportTagName } from '../globals';
import waitForElement from '../utils/utils';
import { mountContentScript, reloadWhenURLChanged } from './content';
import { fetchPackageInfo } from './content-events';
import { urlParsers } from './registry/npm';
import waitForElement from '../utils/utils';

const addPackageReport = async (packageID) => {
// remove an old package report (if exists)
const currPackageReport = document.getElementsByTagName('overlay-package-report');
const currPackageReport = document.getElementsByTagName(packageReportTagName);
if (currPackageReport?.length) {
currPackageReport.item(0).remove();
}

const repository = await waitForElement('#repository', document.querySelector('#main'));
const packageReport = document.createElement('overlay-package-report');
const packageReport = document.createElement(packageReportTagName);
packageReport.setAttribute('package-type', packageID.type);
packageReport.setAttribute('package-name', packageID.name);
repository.parentElement.insertBefore(packageReport, repository);
Expand Down
3 changes: 2 additions & 1 deletion src/content/content.pypi.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import browser from '../browser';
import { packageReportTagName } from '../globals';
import { mountContentScript } from './content';
import { fetchPackageInfo } from './content-events';
import { urlParsers } from './registry/python';

const addPackageReport = (packageID) => {
const packageReport = document.createElement('overlay-package-report');
const packageReport = document.createElement(packageReportTagName);
packageReport.setAttribute('package-type', packageID.type);
packageReport.setAttribute('package-name', packageID.name);
packageReport.setAttribute('stylesheet-url', browser.runtime.getURL('custom-elements.css'));
Expand Down
4 changes: 3 additions & 1 deletion src/content/stackoverflow/indicator.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import { indicatorTagName } from '../../globals';

export const addIndicator = async (range, packageID) => {
console.debug('Adding indicator for', packageID);

const indicator = document.createElement('overlay-indicator');
const indicator = document.createElement(indicatorTagName);
indicator.setAttribute('package-type', packageID.type);
indicator.setAttribute('package-name', packageID.name);
indicator.appendChild(range.extractContents());
Expand Down
5 changes: 3 additions & 2 deletions src/custom-elements/Indicator.vue
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,15 @@

<script>
import { defineComponent } from 'vue';
import Tooltip from './Tooltip.vue';
import { indicatorTagName } from '../globals';
import PackageReport from './PackageReport.vue';
import Tooltip from './Tooltip.vue';
import { usePackageInfo } from './store';

const sum = (arr) => arr.reduce((a, b) => a + b, 0);

export default defineComponent({
name: 'overlay-indicator',
name: indicatorTagName,
components: {
Tooltip,
PackageReport,
Expand Down
4 changes: 2 additions & 2 deletions src/custom-elements/PackageReport.vue
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@

<script>
import { defineComponent } from 'vue';
import advisories from '../advisories';
import DebrickedLogo from '../assets/debricked-logo.svg?component';
import InlineSeparator from '../assets/inline-separator.svg?component';
import NpmLogo from '../assets/npm-logo.svg?component';
Expand All @@ -67,6 +66,7 @@ import PythonLogo from '../assets/python-logo.svg?component';
import ScorecardsLogo from '../assets/scorecards-logo.svg?component';
import SnykLogo from '../assets/snyk-logo.svg?component';
import SocketLogo from '../assets/socket-logo.svg?component';
import { advisories, packageReportTagName } from '../globals';
import { usePackageInfo } from './store';

const registries = {
Expand All @@ -82,7 +82,7 @@ const logos = {
};

export default defineComponent({
name: 'package-report',
name: packageReportTagName,
components: {
OpenExternalLink,
InlineSeparator,
Expand Down
5 changes: 3 additions & 2 deletions src/custom-elements/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import '@webcomponents/custom-elements';
import { defineCustomElement } from 'vue';
import { indicatorTagName, packageReportTagName } from '../globals';
import Indicator from './Indicator.vue';
import PackageReport from './PackageReport.vue';
import { initEventListenersAndStore } from './webapp-events';
Expand All @@ -13,9 +14,9 @@ Promise.all(Object.values(modules).map((module) => module())).then((modules) =>
Indicator.styles = [styles.flat().join('')];

const indicatorCustomElement = defineCustomElement(Indicator);
customElements.define('overlay-indicator', indicatorCustomElement);
customElements.define(indicatorTagName, indicatorCustomElement);
const packageReportCustomElement = defineCustomElement(PackageReport);
customElements.define('overlay-package-report', packageReportCustomElement);
customElements.define(packageReportTagName, packageReportCustomElement);

console.log('Custom element defined');
});
7 changes: 4 additions & 3 deletions src/advisories.js → src/globals.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
const advisories = {
export const advisories = {
snyk: 'Snyk Advisor',
depsDev: 'OpenSSF Scorecard',
socket: 'Socket',
debricked: 'Debricked',
};
export default advisories;

export const advisoriesNames = Object.keys(advisories);

export const indicatorTagName = 'overlay-indicator';
export const packageReportTagName = 'overlay-package-report';
2 changes: 1 addition & 1 deletion src/storage.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { advisoriesNames } from './advisories';
import browser from './browser';
import { advisoriesNames } from './globals';

const defaultAdvisoriesSettings = advisoriesNames.reduce((acc, name) => ({ ...acc, [name]: true }), {});

Expand Down
Loading