gulp-jasmine replaced by jasmine
gitea/salix/pipeline/head There was a failure building this commit Details

This commit is contained in:
Carlos Jimenez Ruiz 2022-05-11 19:38:10 +02:00
parent b0f70c728e
commit 833addcb75
10 changed files with 42989 additions and 118 deletions

24
back/nodemonConfig.json Normal file
View File

@ -0,0 +1,24 @@
{
"verbose": true,
"watch": [
"back/**/*.js",
"modules/**/*.js"
],
"ignore": [
"modules/account/front/**/*",
"modules/claim/front/**/*",
"modules/client/front/**/*",
"modules/entry/front/**/*",
"modules/invoiceIn/front/**/*",
"modules/invoiceOut/front/**/*",
"modules/item/front/**/*",
"modules/monitor/front/**/*",
"modules/order/front/**/*",
"modules/route/front/**/*",
"modules/supplier/front/**/*",
"modules/ticket/front/**/*",
"modules/travel/front/**/*",
"modules/worker/front/**/*",
"modules/zone/front/**/*"
]
}

View File

@ -1,4 +1,5 @@
require('require-yaml');
const Docker = require('../db/docker.js');
let dataSources = require('../loopback/server/datasources.json');
process.on('warning', warning => {
console.log(warning.name);
@ -6,34 +7,53 @@ process.on('warning', warning => {
console.log(warning.stack);
});
let verbose = false;
async function test() {
let verbose = false;
if (process.argv[2] === '--v')
verbose = true;
if (process.argv[2] === '--v')
verbose = true;
let Jasmine = require('jasmine');
let jasmine = new Jasmine();
let SpecReporter = require('jasmine-spec-reporter').SpecReporter;
const container = new Docker();
let serviceSpecs = [
`${__dirname}/**/*[sS]pec.js`,
`${__dirname}/../loopback/**/*[sS]pec.js`,
`${__dirname}/../modules/*/back/**/*.[sS]pec.js`
];
await container.run(process.argv.ci);
dataSources = JSON.parse(JSON.stringify(dataSources));
jasmine.loadConfig({
spec_dir: '.',
spec_files: serviceSpecs,
helpers: []
});
Object.assign(dataSources.vn, {
host: container.dbConf.host,
port: container.dbConf.port
});
jasmine.addReporter(new SpecReporter({
spec: {
// displayStacktrace: 'summary',
displaySuccessful: verbose,
displayFailedSpec: true,
displaySpecDuration: true
}
}));
const bootOptions = {dataSources};
const app = require('vn-loopback/server/server');
app.boot(bootOptions);
jasmine.execute();
const Jasmine = require('jasmine');
const jasmine = new Jasmine();
const SpecReporter = require('jasmine-spec-reporter').SpecReporter;
const backSpecs = [
'./back/**/*[sS]pec.js',
'./loopback/**/*[sS]pec.js',
'./modules/*/back/**/*.[sS]pec.js'
];
jasmine.loadConfig({
spec_dir: '.',
spec_files: backSpecs,
helpers: [],
});
jasmine.addReporter(new SpecReporter({
spec: {
displaySuccessful: verbose,
}
}));
jasmine.exitOnCompletion = false,
await jasmine.execute();
if (app) await app.disconnect();
if (container) await container.rm();
console.log('app disconnected & container removed');
}
test();

View File

@ -983,7 +983,7 @@ export default {
},
invoiceInTax: {
addTaxButton: 'vn-invoice-in-tax vn-icon-button[icon="add_circle"]',
thirdExpence: 'vn-invoice-in-tax vn-horizontal:nth-child(3) > vn-autocomplete[ng-model="invoiceInTax.expenseFk"]',
thirdExpense: 'vn-invoice-in-tax vn-horizontal:nth-child(3) > vn-autocomplete[ng-model="invoiceInTax.expenseFk"]',
thirdTaxableBase: 'vn-invoice-in-tax vn-horizontal:nth-child(3) > vn-input-number[ng-model="invoiceInTax.taxableBase"]',
thirdTaxType: 'vn-invoice-in-tax vn-horizontal:nth-child(3) > vn-autocomplete[ng-model="invoiceInTax.taxTypeSageFk"]',
thirdTransactionType: 'vn-invoice-in-tax vn-horizontal:nth-child(3) > vn-autocomplete[ng-model="invoiceInTax.transactionTypeSageFk"]',

View File

@ -19,7 +19,7 @@ describe('InvoiceIn tax path', () => {
it('should add a new tax', async() => {
await page.waitToClick(selectors.invoiceInTax.addTaxButton);
await page.autocompleteSearch(selectors.invoiceInTax.thirdExpence, '6210000567');
await page.autocompleteSearch(selectors.invoiceInTax.thirdExpense, '6210000567');
await page.write(selectors.invoiceInTax.thirdTaxableBase, '100');
await page.autocompleteSearch(selectors.invoiceInTax.thirdTaxType, '6');
await page.autocompleteSearch(selectors.invoiceInTax.thirdTransactionType, 'Operaciones exentas');
@ -37,9 +37,9 @@ describe('InvoiceIn tax path', () => {
expect(result).toEqual('Taxable base €1,323.16');
});
it('should navigate back to the tax section and check the reciently added line contains the expected expense', async() => {
it('should navigate back to tax section, check the reciently added line contains the expected expense', async() => {
await page.accessToSection('invoiceIn.card.tax');
const result = await page.waitToGetProperty(selectors.invoiceInTax.thirdExpence, 'value');
const result = await page.waitToGetProperty(selectors.invoiceInTax.thirdExpense, 'value');
expect(result).toEqual('6210000567: Alquiler VNH');
});

View File

@ -68,83 +68,6 @@ back.description = `Starts backend and database service`;
const defaultTask = gulp.parallel(front, back);
defaultTask.description = `Starts all application services`;
// Backend tests - Private method
async function launchBackTest(done) {
let err;
let dataSources = require('./loopback/server/datasources.json');
const container = new Docker();
await container.run(argv.ci);
dataSources = JSON.parse(JSON.stringify(dataSources));
Object.assign(dataSources.vn, {
host: container.dbConf.host,
port: container.dbConf.port
});
let bootOptions = {dataSources};
let app = require(`./loopback/server/server`);
try {
app.boot(bootOptions);
await new Promise((resolve, reject) => {
const jasmine = require('gulp-jasmine');
const options = {
verbose: false,
includeStackTrace: false,
errorOnFail: false,
timeout: 5000,
config: {}
};
if (argv.ci) {
const reporters = require('jasmine-reporters');
options.reporter = new reporters.JUnitXmlReporter();
}
let backSpecFiles = [
'back/**/*.spec.js',
'loopback/**/*.spec.js',
'modules/*/back/**/*.spec.js'
];
gulp.src(backSpecFiles)
.pipe(jasmine(options))
.on('end', resolve)
.on('error', reject)
.resume();
});
} catch (e) {
err = e;
}
await app.disconnect();
await container.rm();
done();
if (err)
throw err;
}
launchBackTest.description = `
Runs the backend tests once using a random container, can receive --ci arg to save reports on a xml file`;
// Backend tests
function backTest(done) {
const nodemon = require('gulp-nodemon');
nodemon({
exec: ['node --tls-min-v1.0 ./node_modules/gulp/bin/gulp.js'],
args: ['launchBackTest'],
watch: backSources,
done: done
});
}
backTest.description = `Watches for changes in modules to execute backTest task`;
// End to end tests
function e2eSingleRun() {
require('@babel/register')({presets: ['@babel/env']});
@ -431,8 +354,6 @@ module.exports = {
back,
backOnly,
backWatch,
backTest,
launchBackTest,
e2e,
i,
install,

View File

@ -14,7 +14,7 @@ describe('loopback model address', () => {
}
};
beforeEach(() => {
beforeAll(() => {
spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
active: activeCtx
});

View File

@ -1,5 +1,6 @@
const models = require('vn-loopback/server/server').models;
const LoopBackContext = require('loopback-context');
const activeCtx = {accessToken: {userId: 9}};
describe('entry importBuysPreview()', () => {
const entryId = 1;

View File

@ -1,9 +1,21 @@
const app = require('vn-loopback/server/server');
const LoopBackContext = require('loopback-context');
describe('route guessPriority()', () => {
const targetRouteId = 7;
let routeTicketsToRestore;
const activeCtx = {
accessToken: {userId: 9},
__: () => {}
};
beforeAll(() => {
spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
active: activeCtx
});
});
afterAll(async() => {
let restoreFixtures = [];
routeTicketsToRestore.forEach(ticket => {
@ -12,12 +24,9 @@ describe('route guessPriority()', () => {
await Promise.all(restoreFixtures);
});
it('should call guessPriority() and then check the tickets in the target route now have their priorities defined', async() => {
it('should call guessPriority() then check all tickets in that route have their priorities defined', async() => {
const ctx = {
req: {
accessToken: {userId: 9},
__: () => {}
},
req: activeCtx
};
routeTicketsToRestore = await app.models.Ticket.find({where: {routeFk: targetRouteId}});

42896
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -68,7 +68,6 @@
"gulp-env": "^0.4.0",
"gulp-file": "^0.4.0",
"gulp-install": "^1.1.0",
"gulp-jasmine": "^4.0.0",
"gulp-merge-json": "^1.3.1",
"gulp-nodemon": "^2.5.0",
"gulp-print": "^2.0.1",
@ -78,7 +77,7 @@
"html-loader-jest": "^0.2.1",
"html-webpack-plugin": "^4.0.0-beta.11",
"identity-obj-proxy": "^3.0.0",
"jasmine": "^3.10.0",
"jasmine": "^4.1.0",
"jasmine-reporters": "^2.4.0",
"jasmine-spec-reporter": "^7.0.0",
"jest": "^26.0.1",
@ -88,7 +87,7 @@
"minimist": "^1.2.5",
"mysql2": "^1.7.0",
"node-sass": "^4.14.1",
"nodemon": "^1.19.4",
"nodemon": "^2.0.16",
"plugin-error": "^1.0.1",
"raw-loader": "^1.0.0",
"regenerator-runtime": "^0.13.7",
@ -102,6 +101,7 @@
},
"scripts": {
"dbtest": "nodemon -q db/tests.js -w db/tests",
"backtest": "nodemon -q back/tests.js --config back/nodemonConfig.json",
"test": "jest --watch",
"back": "nodemon --inspect -w modules ./node_modules/gulp/bin/gulp.js back",
"lint": "eslint ./ --cache --ignore-pattern .gitignore",