Upgrade Cypress

This commit is contained in:
MOREL Matthieu
2022-06-19 14:13:22 +02:00
parent 8f8c685a39
commit 648b15b00b
27 changed files with 430 additions and 445 deletions

20
cypress.config.js Normal file
View File

@@ -0,0 +1,20 @@
const { defineConfig } = require('cypress');
const { addMatchImageSnapshotPlugin } = require('cypress-image-snapshot/plugin');
require('@applitools/eyes-cypress')(module);
module.exports = defineConfig({
e2e: {
specPattern: 'cypress/e2e/**/*.{js,jsx,ts,tsx}',
setupNodeEvents(on, config) {
addMatchImageSnapshotPlugin(on, config);
// copy any needed variables from process.env to config.env
config.env.useAppli = process.env.USE_APPLI ? true : false;
config.env.codeBranch = process.env.APPLI_BRANCH;
// do not forget to return the changed config object!
return config;
},
supportFile: 'cypress/support/index.js',
},
video: false,
});

View File

@@ -1,3 +0,0 @@
{
"video": false
}

View File

@@ -1,410 +1,410 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util'; import { imgSnapshotTest, renderGraph } from '../../helpers/util';
describe('Class diagram', () => { describe('Class diagram', () => {
it('1: should render a simple class diagram', () => { it('1: should render a simple class diagram', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
Class01 <|-- AveryLongClass : Cool Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01 &lt;&lt;interface&gt;&gt; Class01
Class03 *-- Class04 Class03 *-- Class04
Class05 o-- Class06 Class05 o-- Class06
Class07 .. Class08 Class07 .. Class08
Class09 --> C2 : Where am i? Class09 --> C2 : Where am i?
Class09 --* C3 Class09 --* C3
Class09 --|> Class07 Class09 --|> Class07
Class12 <|.. Class08 Class12 <|.. Class08
Class11 ..>Class12 Class11 ..>Class12
Class07 : equals() Class07 : equals()
Class07 : Object[] elementData Class07 : Object[] elementData
Class01 : size() Class01 : size()
Class01 : int chimp Class01 : int chimp
Class01 : int gorilla Class01 : int gorilla
Class01 : -int privateChimp Class01 : -int privateChimp
Class01 : +int publicGorilla Class01 : +int publicGorilla
Class01 : #int protectedMarmoset Class01 : #int protectedMarmoset
Class08 <--> C2: Cool label Class08 <--> C2: Cool label
class Class10 { class Class10 {
&lt;&lt;service&gt;&gt; &lt;&lt;service&gt;&gt;
int id int id
test() test()
} }
`, `,
{ logLevel: 1 } { logLevel: 1 }
); );
cy.get('svg'); cy.get('svg');
}); });
it('2: should render a simple class diagrams with cardinality', () => { it('2: should render a simple class diagrams with cardinality', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
Class01 "1" <|--|> "*" AveryLongClass : Cool Class01 "1" <|--|> "*" AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01 &lt;&lt;interface&gt;&gt; Class01
Class03 "1" *-- "*" Class04 Class03 "1" *-- "*" Class04
Class05 "1" o-- "many" Class06 Class05 "1" o-- "many" Class06
Class07 "1" .. "*" Class08 Class07 "1" .. "*" Class08
Class09 "1" --> "*" C2 : Where am i? Class09 "1" --> "*" C2 : Where am i?
Class09 "*" --* "*" C3 Class09 "*" --* "*" C3
Class09 "1" --|> "1" Class07 Class09 "1" --|> "1" Class07
Class07 : equals() Class07 : equals()
Class07 : Object[] elementData Class07 : Object[] elementData
Class01 : size() Class01 : size()
Class01 : int chimp Class01 : int chimp
Class01 : int gorilla Class01 : int gorilla
Class08 "1" <--> "*" C2: Cool label Class08 "1" <--> "*" C2: Cool label
class Class10 { class Class10 {
&lt;&lt;service&gt;&gt; &lt;&lt;service&gt;&gt;
int id int id
test() test()
} }
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('3: should render a simple class diagram with different visibilities', () => { it('3: should render a simple class diagram with different visibilities', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
Class01 <|-- AveryLongClass : Cool Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01 &lt;&lt;interface&gt;&gt; Class01
Class01 : -privateMethod() Class01 : -privateMethod()
Class01 : +publicMethod() Class01 : +publicMethod()
Class01 : #protectedMethod() Class01 : #protectedMethod()
Class01 : -int privateChimp Class01 : -int privateChimp
Class01 : +int publicGorilla Class01 : +int publicGorilla
Class01 : #int protectedMarmoset Class01 : #int protectedMarmoset
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('4: should render a simple class diagram with comments', () => { it('4: should render a simple class diagram with comments', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
%% this is a comment %% this is a comment
Class01 <|-- AveryLongClass : Cool Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01 &lt;&lt;interface&gt;&gt; Class01
Class03 *-- Class04 Class03 *-- Class04
Class05 o-- Class06 Class05 o-- Class06
Class07 .. Class08 Class07 .. Class08
Class09 --> C2 : Where am i? Class09 --> C2 : Where am i?
Class09 --* C3 Class09 --* C3
Class09 --|> Class07 Class09 --|> Class07
Class07 : equals() Class07 : equals()
Class07 : Object[] elementData Class07 : Object[] elementData
Class01 : size() Class01 : size()
Class01 : int chimp Class01 : int chimp
Class01 : int gorilla Class01 : int gorilla
Class08 <--> C2: Cool label Class08 <--> C2: Cool label
class Class10 { class Class10 {
&lt;&lt;service&gt;&gt; &lt;&lt;service&gt;&gt;
int id int id
test() test()
} }
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('5: should render a simple class diagram with abstract method', () => { it('5: should render a simple class diagram with abstract method', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
Class01 <|-- AveryLongClass : Cool Class01 <|-- AveryLongClass : Cool
Class01 : someMethod()* Class01 : someMethod()*
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('6: should render a simple class diagram with static method', () => { it('6: should render a simple class diagram with static method', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
Class01 <|-- AveryLongClass : Cool Class01 <|-- AveryLongClass : Cool
Class01 : someMethod()$ Class01 : someMethod()$
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('7: should render a simple class diagram with Generic class', () => { it('7: should render a simple class diagram with Generic class', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
class Class01~T~ class Class01~T~
Class01 : size() Class01 : size()
Class01 : int chimp Class01 : int chimp
Class01 : int gorilla Class01 : int gorilla
Class08 <--> C2: Cool label Class08 <--> C2: Cool label
class Class10~T~ { class Class10~T~ {
&lt;&lt;service&gt;&gt; &lt;&lt;service&gt;&gt;
int id int id
test() test()
} }
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('8: should render a simple class diagram with Generic class and relations', () => { it('8: should render a simple class diagram with Generic class and relations', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
Class01~T~ <|-- AveryLongClass : Cool Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~ Class03~T~ *-- Class04~T~
Class01 : size() Class01 : size()
Class01 : int chimp Class01 : int chimp
Class01 : int gorilla Class01 : int gorilla
Class08 <--> C2: Cool label Class08 <--> C2: Cool label
class Class10~T~ { class Class10~T~ {
&lt;&lt;service&gt;&gt; &lt;&lt;service&gt;&gt;
int id int id
test() test()
} }
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('9: should render a simple class diagram with clickable link', () => { it('9: should render a simple class diagram with clickable link', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
Class01~T~ <|-- AveryLongClass : Cool Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~ Class03~T~ *-- Class04~T~
Class01 : size() Class01 : size()
Class01 : int chimp Class01 : int chimp
Class01 : int gorilla Class01 : int gorilla
Class08 <--> C2: Cool label Class08 <--> C2: Cool label
class Class10~T~ { class Class10~T~ {
&lt;&lt;service&gt;&gt; &lt;&lt;service&gt;&gt;
int id int id
test() test()
} }
link Class01 "google.com" "A Tooltip" link Class01 "google.com" "A Tooltip"
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('10: should render a simple class diagram with clickable callback', () => { it('10: should render a simple class diagram with clickable callback', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
Class01~T~ <|-- AveryLongClass : Cool Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~ Class03~T~ *-- Class04~T~
Class01 : size() Class01 : size()
Class01 : int chimp Class01 : int chimp
Class01 : int gorilla Class01 : int gorilla
Class08 <--> C2: Cool label Class08 <--> C2: Cool label
class Class10~T~ { class Class10~T~ {
&lt;&lt;service&gt;&gt; &lt;&lt;service&gt;&gt;
int id int id
test() test()
} }
callback Class01 "functionCall" "A Tooltip" callback Class01 "functionCall" "A Tooltip"
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('11: should render a simple class diagram with return type on method', () => { it('11: should render a simple class diagram with return type on method', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
class Class10~T~ { class Class10~T~ {
int[] id int[] id
test(int[] ids) bool test(int[] ids) bool
testArray() bool[] testArray() bool[]
} }
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('12: should render a simple class diagram with generic types', () => { it('12: should render a simple class diagram with generic types', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
class Class10~T~ { class Class10~T~ {
int[] id int[] id
List~int~ ids List~int~ ids
test(List~int~ ids) List~bool~ test(List~int~ ids) List~bool~
testArray() bool[] testArray() bool[]
} }
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('13: should render a simple class diagram with css classes applied', () => { it('13: should render a simple class diagram with css classes applied', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
class Class10 { class Class10 {
int[] id int[] id
List~int~ ids List~int~ ids
test(List~int~ ids) List~bool~ test(List~int~ ids) List~bool~
testArray() bool[] testArray() bool[]
} }
class Class10:::exClass2 class Class10:::exClass2
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('14: should render a simple class diagram with css classes applied directly', () => { it('14: should render a simple class diagram with css classes applied directly', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
class Class10:::exClass2 { class Class10:::exClass2 {
int[] id int[] id
List~int~ ids List~int~ ids
test(List~int~ ids) List~bool~ test(List~int~ ids) List~bool~
testArray() bool[] testArray() bool[]
} }
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('15: should render a simple class diagram with css classes applied two multiple classes', () => { it('15: should render a simple class diagram with css classes applied two multiple classes', () => {
imgSnapshotTest( imgSnapshotTest(
` `
classDiagram classDiagram
class Class10 class Class10
class Class20 class Class20
cssClass "Class10, Class20" exClass2 cssClass "Class10, Class20" exClass2
class Class20:::exClass2 class Class20:::exClass2
`, `,
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
it('16: should render multiple class diagrams', () => { it('16: should render multiple class diagrams', () => {
imgSnapshotTest( imgSnapshotTest(
[ [
` `
classDiagram classDiagram
Class01 "1" <|--|> "*" AveryLongClass : Cool Class01 "1" <|--|> "*" AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01 &lt;&lt;interface&gt;&gt; Class01
Class03 "1" *-- "*" Class04 Class03 "1" *-- "*" Class04
Class05 "1" o-- "many" Class06 Class05 "1" o-- "many" Class06
Class07 "1" .. "*" Class08 Class07 "1" .. "*" Class08
Class09 "1" --> "*" C2 : Where am i? Class09 "1" --> "*" C2 : Where am i?
Class09 "*" --* "*" C3 Class09 "*" --* "*" C3
Class09 "1" --|> "1" Class07 Class09 "1" --|> "1" Class07
Class07 : equals() Class07 : equals()
Class07 : Object[] elementData Class07 : Object[] elementData
Class01 : size() Class01 : size()
Class01 : int chimp Class01 : int chimp
Class01 : int gorilla Class01 : int gorilla
Class08 "1" <--> "*" C2: Cool label Class08 "1" <--> "*" C2: Cool label
class Class10 { class Class10 {
&lt;&lt;service&gt;&gt; &lt;&lt;service&gt;&gt;
int id int id
test() test()
} }
`, `,
` `
classDiagram classDiagram
Class01 "1" <|--|> "*" AveryLongClass : Cool Class01 "1" <|--|> "*" AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01 &lt;&lt;interface&gt;&gt; Class01
Class03 "1" *-- "*" Class04 Class03 "1" *-- "*" Class04
Class05 "1" o-- "many" Class06 Class05 "1" o-- "many" Class06
Class07 "1" .. "*" Class08 Class07 "1" .. "*" Class08
Class09 "1" --> "*" C2 : Where am i? Class09 "1" --> "*" C2 : Where am i?
Class09 "*" --* "*" C3 Class09 "*" --* "*" C3
Class09 "1" --|> "1" Class07 Class09 "1" --|> "1" Class07
Class07 : equals() Class07 : equals()
Class07 : Object[] elementData Class07 : Object[] elementData
Class01 : size() Class01 : size()
Class01 : int chimp Class01 : int chimp
Class01 : int gorilla Class01 : int gorilla
Class08 "1" <--> "*" C2: Cool label Class08 "1" <--> "*" C2: Cool label
class Class10 { class Class10 {
&lt;&lt;service&gt;&gt; &lt;&lt;service&gt;&gt;
int id int id
test() test()
} }
`, `,
], ],
{} {}
); );
cy.get('svg'); cy.get('svg');
}); });
// it('17: should render a class diagram when useMaxWidth is true (default)', () => { // it('17: should render a class diagram when useMaxWidth is true (default)', () => {
// renderGraph( // renderGraph(
// ` // `
// classDiagram // classDiagram
// Class01 <|-- AveryLongClass : Cool // Class01 <|-- AveryLongClass : Cool
// Class01 : size() // Class01 : size()
// Class01 : int chimp // Class01 : int chimp
// Class01 : int gorilla // Class01 : int gorilla
// Class01 : -int privateChimp // Class01 : -int privateChimp
// Class01 : +int publicGorilla // Class01 : +int publicGorilla
// Class01 : #int protectedMarmoset // Class01 : #int protectedMarmoset
// `, // `,
// { class: { useMaxWidth: true } } // { class: { useMaxWidth: true } }
// ); // );
// cy.get('svg') // cy.get('svg')
// .should((svg) => { // .should((svg) => {
// expect(svg).to.have.attr('width', '100%'); // expect(svg).to.have.attr('width', '100%');
// const height = parseFloat(svg.attr('height')); // const height = parseFloat(svg.attr('height'));
// expect(height).to.be.within(332, 333); // expect(height).to.be.within(332, 333);
// // expect(svg).to.have.attr('height', '218'); // // expect(svg).to.have.attr('height', '218');
// const style = svg.attr('style'); // const style = svg.attr('style');
// expect(style).to.match(/^max-width: [\d.]+px;$/); // expect(style).to.match(/^max-width: [\d.]+px;$/);
// const maxWidthValue = parseInt(style.match(/[\d.]+/g).join('')); // const maxWidthValue = parseInt(style.match(/[\d.]+/g).join(''));
// // use within because the absolute value can be slightly different depending on the environment ±5% // // use within because the absolute value can be slightly different depending on the environment ±5%
// expect(maxWidthValue).to.be.within(203, 204); // expect(maxWidthValue).to.be.within(203, 204);
// }); // });
// }); // });
// it('18: should render a class diagram when useMaxWidth is false', () => { // it('18: should render a class diagram when useMaxWidth is false', () => {
// renderGraph( // renderGraph(
// ` // `
// classDiagram // classDiagram
// Class01 <|-- AveryLongClass : Cool // Class01 <|-- AveryLongClass : Cool
// Class01 : size() // Class01 : size()
// Class01 : int chimp // Class01 : int chimp
// Class01 : int gorilla // Class01 : int gorilla
// Class01 : -int privateChimp // Class01 : -int privateChimp
// Class01 : +int publicGorilla // Class01 : +int publicGorilla
// Class01 : #int protectedMarmoset // Class01 : #int protectedMarmoset
// `, // `,
// { class: { useMaxWidth: false } } // { class: { useMaxWidth: false } }
// ); // );
// cy.get('svg') // cy.get('svg')
// .should((svg) => { // .should((svg) => {
// const width = parseFloat(svg.attr('width')); // const width = parseFloat(svg.attr('width'));
// // use within because the absolute value can be slightly different depending on the environment ±5% // // use within because the absolute value can be slightly different depending on the environment ±5%
// expect(width).to.be.within(100, 101); // expect(width).to.be.within(100, 101);
// const height = parseFloat(svg.attr('height')); // const height = parseFloat(svg.attr('height'));
// expect(height).to.be.within(332, 333); // expect(height).to.be.within(332, 333);
// // expect(svg).to.have.attr('height', '332'); // // expect(svg).to.have.attr('height', '332');
// // expect(svg).to.not.have.attr('style'); // // expect(svg).to.not.have.attr('style');
// }); // });
// }); // });
}); });

View File

@@ -1,32 +0,0 @@
// ***********************************************************
// This example plugins/index.js can be used to load plugins
//
// You can change the location of this file or turn off loading
// the plugins file with the 'pluginsFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/plugins-guide
// ***********************************************************
// This function is called when a project is opened or re-opened (e.g. due to
// the project's config changing)
// module.exports = (on, config) => {
// // `on` is used to hook into various events Cypress emits
// // `config` is the resolved Cypress config
// }
const { addMatchImageSnapshotPlugin } = require('cypress-image-snapshot/plugin');
require('@applitools/eyes-cypress')(module);
module.exports = (on, config) => {
addMatchImageSnapshotPlugin(on, config);
// copy any needed variables from process.env to config.env
config.env.useAppli = process.env.USE_APPLI ? true : false;
config.env.codeBranch = process.env.APPLI_BRANCH;
// do not forget to return the changed config object!
return config;
};
require('@applitools/eyes-cypress')(module);