feat: refs #8647 vitest fail on warning
gitea/salix-front/pipeline/pr-dev Something is wrong with the build of this commit Details

This commit is contained in:
Jon Elias 2025-04-10 09:34:18 +02:00
parent a74e1102ed
commit aefb7b7dcb
3 changed files with 88 additions and 83 deletions

View File

@ -67,7 +67,7 @@ describe('Axios boot', () => {
};
const result = onResponseError(error);
expect(result).rejects.toEqual(expect.objectContaining(error));
await expect(result).rejects.toEqual(expect.objectContaining(error));
});
it('should call to the Notify plugin with a message from the response property', async () => {
@ -83,7 +83,7 @@ describe('Axios boot', () => {
};
const result = onResponseError(error);
expect(result).rejects.toEqual(expect.objectContaining(error));
await expect(result).rejects.toEqual(expect.objectContaining(error));
});
});
});

View File

@ -64,88 +64,84 @@ describe('session', () => {
});
});
describe(
'login',
() => {
const expectedUser = {
id: 999,
name: `T'Challa`,
nickname: 'Black Panther',
lang: 'en',
userConfig: {
darkMode: false,
describe('login', () => {
const expectedUser = {
id: 999,
name: `T'Challa`,
nickname: 'Black Panther',
lang: 'en',
userConfig: {
darkMode: false,
},
worker: { department: { departmentFk: 155 } },
};
const rolesData = [
{
role: {
name: 'salesPerson',
},
worker: { department: { departmentFk: 155 } },
};
const rolesData = [
{
role: {
name: 'salesPerson',
},
},
{
role: {
name: 'admin',
},
{
role: {
name: 'admin',
},
},
];
beforeEach(() => {
vi.spyOn(axios, 'get').mockImplementation((url) => {
if (url === 'VnUsers/acls') return Promise.resolve({ data: [] });
return Promise.resolve({
data: { roles: rolesData, user: expectedUser },
});
},
];
beforeEach(() => {
vi.spyOn(axios, 'get').mockImplementation((url) => {
if (url === 'VnUsers/acls') return Promise.resolve({ data: [] });
return Promise.resolve({
data: { roles: rolesData, user: expectedUser },
});
});
});
it('should fetch the user roles and then set token in the sessionStorage', async () => {
const expectedRoles = ['salesPerson', 'admin'];
const expectedToken = 'mySessionToken';
const expectedTokenMultimedia = 'mySessionTokenMultimedia';
const keepLogin = false;
it('should fetch the user roles and then set token in the sessionStorage', async () => {
const expectedRoles = ['salesPerson', 'admin'];
const expectedToken = 'mySessionToken';
const expectedTokenMultimedia = 'mySessionTokenMultimedia';
const keepLogin = false;
await session.login({
token: expectedToken,
tokenMultimedia: expectedTokenMultimedia,
keepLogin,
});
const roles = state.getRoles();
const localToken = localStorage.getItem('token');
const sessionToken = sessionStorage.getItem('token');
expect(roles.value).toEqual(expectedRoles);
expect(localToken).toBeNull();
expect(sessionToken).toEqual(expectedToken);
await session.destroy(); // this clears token and user for any other test
await session.login({
token: expectedToken,
tokenMultimedia: expectedTokenMultimedia,
keepLogin,
});
it('should fetch the user roles and then set token in the localStorage', async () => {
const expectedRoles = ['salesPerson', 'admin'];
const expectedToken = 'myLocalToken';
const expectedTokenMultimedia = 'myLocalTokenMultimedia';
const keepLogin = true;
const roles = state.getRoles();
const localToken = localStorage.getItem('token');
const sessionToken = sessionStorage.getItem('token');
await session.login({
token: expectedToken,
tokenMultimedia: expectedTokenMultimedia,
keepLogin,
});
expect(roles.value).toEqual(expectedRoles);
expect(localToken).toBeNull();
expect(sessionToken).toEqual(expectedToken);
const roles = state.getRoles();
const localToken = localStorage.getItem('token');
const sessionToken = sessionStorage.getItem('token');
await session.destroy(); // this clears token and user for any other test
});
expect(roles.value).toEqual(expectedRoles);
expect(localToken).toEqual(expectedToken);
expect(sessionToken).toBeNull();
it('should fetch the user roles and then set token in the localStorage', async () => {
const expectedRoles = ['salesPerson', 'admin'];
const expectedToken = 'myLocalToken';
const expectedTokenMultimedia = 'myLocalTokenMultimedia';
const keepLogin = true;
await session.destroy(); // this clears token and user for any other test
await session.login({
token: expectedToken,
tokenMultimedia: expectedTokenMultimedia,
keepLogin,
});
},
{},
);
const roles = state.getRoles();
const localToken = localStorage.getItem('token');
const sessionToken = sessionStorage.getItem('token');
expect(roles.value).toEqual(expectedRoles);
expect(localToken).toEqual(expectedToken);
expect(sessionToken).toBeNull();
await session.destroy(); // this clears token and user for any other test
});
});
describe('RenewToken', () => {
const expectedToken = 'myToken';

View File

@ -1,17 +1,26 @@
import { vi } from 'vitest';
import { config } from '@vue/test-utils';
import { afterAll, beforeAll, vi } from 'vitest';
// beforeEach(() => {
// vi.spyOn(console, 'warn').mockImplementation((message) => {
// console.log('WARNING: ', message);
// throw new Error(`Test failed due to console.warn: ${message}`);
// });
let vueWarnings = [];
// vi.spyOn(console, 'error').mockImplementation((message) => {
// console.log('FALLO: ', message);
// throw new Error(`Test failed due to console.warn: ${message}`);
// });
// });
const originalConsoleWarn = console.warn;
beforeAll(() => {
console.warn = (...args) => {
vueWarnings.push(args.join(' '));
};
});
afterEach(() => {
if (vueWarnings.length > 0) {
const allWarnings = vueWarnings.join('\n');
vueWarnings = [];
throw new Error(`Vue warnings detected during test:\n${allWarnings}`);
}
});
afterAll(() => {
console.warn = originalConsoleWarn;
});
vi.mock('axios');
vi.mock('vue-router', () => ({