Skip to content

Commit

Permalink
PF e PG: regex e test
Browse files Browse the repository at this point in the history
  • Loading branch information
fbianchicodermine committed Feb 19, 2025
1 parent 3a70a1b commit b972ff4
Show file tree
Hide file tree
Showing 4 changed files with 110 additions and 2 deletions.
2 changes: 1 addition & 1 deletion packages/pn-personafisica-webapp/public/js/config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const regex = new RegExp('https://cittadini.((dev|test|uat|hotfix).?)notifichedigitali.it');
const regex = new RegExp('https://cittadini(.(dev|test|uat|hotfix))?.notifichedigitali.it');
const origin = window.origin;
if (regex.test(origin)) {
document.write(`<meta name="robots" content="noindex">`);
Expand Down
54 changes: 54 additions & 0 deletions packages/pn-personafisica-webapp/src/__test__/config.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import fs from 'fs';
import { JSDOM } from 'jsdom';
import path from 'path';
import { vi } from 'vitest';

const emptyHTML = '<html><head></head><body></body></html>';
const scriptContent = fs.readFileSync(path.resolve(__dirname, '../../public/js/config.js'), 'utf8');

describe('config.js behavior', () => {
let dom;
let document;

beforeAll(() => {
dom = new JSDOM(emptyHTML, {
runScripts: 'dangerously',
resources: 'usable',
});

document = dom.window.document;
vi.spyOn(document, 'write').mockImplementation(() => {});
});

test('should add noindex meta tag when URL matches regex', async () => {
const origins = [
'https://cittadini.notifichedigitali.it',
'https://cittadini.dev.notifichedigitali.it/',
'https://cittadini.test.notifichedigitali.it/',
'https://cittadini.uat.notifichedigitali.it/',
'https://cittadini.hotfix.notifichedigitali.it/',
];

for (const origin of origins) {
document.write.mockClear();
dom.window.origin = origin;
dom.window.eval(scriptContent);
expect(document.write).toHaveBeenCalledWith(`<meta name="robots" content="noindex">`);
}
});

test('should not add noindex meta tag when URL does not match regex', async () => {
const origins = [
'https://cittadini.testnotifichedigitali.it',
'https://cittadini.prod.notifichedigitali.it',
'https://otherapp.dev.notifichedigitali.it',
];

for (const origin of origins) {
document.write.mockClear();
dom.window.origin = origin;
dom.window.eval(scriptContent);
expect(document.write).not.toHaveBeenCalled();
}
});
});
2 changes: 1 addition & 1 deletion packages/pn-personagiuridica-webapp/public/js/config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const regex = new RegExp('https://imprese.((dev|test|uat|hotfix).?)notifichedigitali.it');
const regex = new RegExp('https://imprese(.(dev|test|uat|hotfix))?.notifichedigitali.it');
const origin = window.origin;
if (regex.test(origin)) {
document.write(`<meta name="robots" content="noindex">`);
Expand Down
54 changes: 54 additions & 0 deletions packages/pn-personagiuridica-webapp/src/__test__/config.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import fs from 'fs';
import { JSDOM } from 'jsdom';
import path from 'path';
import { vi } from 'vitest';

const emptyHTML = '<html><head></head><body></body></html>';
const scriptContent = fs.readFileSync(path.resolve(__dirname, '../../public/js/config.js'), 'utf8');

describe('config.js behavior', () => {
let dom;
let document;

beforeAll(() => {
dom = new JSDOM(emptyHTML, {
runScripts: 'dangerously',
resources: 'usable',
});

document = dom.window.document;
vi.spyOn(document, 'write').mockImplementation(() => {});
});

test('should add noindex meta tag when URL matches regex', async () => {
const origins = [
'https://imprese.notifichedigitali.it',
'https://imprese.dev.notifichedigitali.it/',
'https://imprese.test.notifichedigitali.it/',
'https://imprese.uat.notifichedigitali.it/',
'https://imprese.hotfix.notifichedigitali.it/',
];

for (const origin of origins) {
document.write.mockClear();
dom.window.origin = origin;
dom.window.eval(scriptContent);
expect(document.write).toHaveBeenCalledWith(`<meta name="robots" content="noindex">`);
}
});

test('should not add noindex meta tag when URL does not match regex', async () => {
const origins = [
'https://imprese.testnotifichedigitali.it',
'https://imprese.prod.notifichedigitali.it',
'https://otherapp.dev.notifichedigitali.it',
];

for (const origin of origins) {
document.write.mockClear();
dom.window.origin = origin;
dom.window.eval(scriptContent);
expect(document.write).not.toHaveBeenCalled();
}
});
});

0 comments on commit b972ff4

Please sign in to comment.