Skip to content

Commit 4137a5a

Browse files
authored
Merge pull request #997 from PaloAltoNetworks/cypress-tests
refactor create schema tests to cypress
2 parents 893b432 + 04d4a8b commit 4137a5a

File tree

7 files changed

+5716
-10
lines changed

7 files changed

+5716
-10
lines changed

cypress/integration/__snapshots__/testSchemaSnapshots.spec.ts.snap

Lines changed: 4738 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/* ============================================================================
2+
* Copyright (c) Palo Alto Networks
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
* ========================================================================== */
7+
8+
describe("Schema Snapshots", () => {
9+
const urls = [
10+
"https://docusaurus-openapi.tryingpan.dev/tests/all-of-with-array-items",
11+
"https://docusaurus-openapi.tryingpan.dev/tests/all-of-with-deep-merging",
12+
"https://docusaurus-openapi.tryingpan.dev/tests/all-of-with-nested-all-of",
13+
"https://docusaurus-openapi.tryingpan.dev/tests/all-of-with-same-level-properties",
14+
"https://docusaurus-openapi.tryingpan.dev/tests/all-of-with-shared-required-properties",
15+
"https://docusaurus-openapi.tryingpan.dev/tests/any-of-with-one-of",
16+
"https://docusaurus-openapi.tryingpan.dev/tests/any-of-with-primitives",
17+
"https://docusaurus-openapi.tryingpan.dev/tests/basic-discriminator-with-mapping",
18+
"https://docusaurus-openapi.tryingpan.dev/tests/basic-discriminator-without-mapping",
19+
"https://docusaurus-openapi.tryingpan.dev/tests/discriminator-with-all-of-and-mapping",
20+
"https://docusaurus-openapi.tryingpan.dev/tests/discriminator-with-all-of-without-mapping",
21+
"https://docusaurus-openapi.tryingpan.dev/tests/discriminator-with-nested-schemas-and-mapping",
22+
"https://docusaurus-openapi.tryingpan.dev/tests/discriminator-with-nested-schemas-without-mapping",
23+
"https://docusaurus-openapi.tryingpan.dev/tests/discriminator-with-required-properties-and-mapping",
24+
"https://docusaurus-openapi.tryingpan.dev/tests/discriminator-with-required-properties-without-mapping",
25+
"https://docusaurus-openapi.tryingpan.dev/tests/discriminator-with-shared-properties-and-mapping",
26+
"https://docusaurus-openapi.tryingpan.dev/tests/discriminator-with-shared-properties-without-mapping",
27+
"https://docusaurus-openapi.tryingpan.dev/tests/get-entities-by-multiple-status",
28+
"https://docusaurus-openapi.tryingpan.dev/tests/get-entities-by-status",
29+
"https://docusaurus-openapi.tryingpan.dev/tests/multiple-all-of-with-nested-properties",
30+
"https://docusaurus-openapi.tryingpan.dev/tests/one-of-with-complex-types",
31+
"https://docusaurus-openapi.tryingpan.dev/tests/one-of-with-nested-one-of",
32+
"https://docusaurus-openapi.tryingpan.dev/tests/one-of-with-primitive-types",
33+
"https://docusaurus-openapi.tryingpan.dev/tests/one-of-with-required-properties",
34+
"https://docusaurus-openapi.tryingpan.dev/tests/one-of-with-shared-properties",
35+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/additionalbookinfo",
36+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/baseallof",
37+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/baseallofmapping",
38+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/basebasic",
39+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/basebasicmapping",
40+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/basenested",
41+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/basenestedmapping",
42+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/baserequired",
43+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/baserequiredmapping",
44+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/baseshared",
45+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/basesharedmapping",
46+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/book",
47+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/bookbase",
48+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/enumdescriptionsentity",
49+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/existingschema-1",
50+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/existingschema-2",
51+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/nestedtypea",
52+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/nestedtypeb",
53+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/typea",
54+
"https://docusaurus-openapi.tryingpan.dev/tests/schemas/typeb",
55+
];
56+
57+
urls.forEach((url) => {
58+
const pageName = url.split("/").pop(); // Extract the page name from the URL
59+
it(`should match the snapshot for ${pageName}`, () => {
60+
cy.visit(url);
61+
// Pause the test to inspect the state of the DOM
62+
cy.pause();
63+
// Wait for the container to be visible and then snapshot it
64+
cy.get(".theme-api-markdown", { timeout: 10000 })
65+
.should("be.visible")
66+
.toMatchSnapshot(pageName!);
67+
});
68+
});
69+
});

cypress/plugins/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,14 @@
55
* LICENSE file in the root directory of this source tree.
66
* ========================================================================== */
77

8+
// @ts-ignore
9+
// eslint-disable-next-line import/no-extraneous-dependencies
10+
import { initPlugin } from "cypress-plugin-snapshots/plugin";
11+
812
const plugins: Cypress.PluginConfig = (on, config) => {
13+
// Initialize cypress-plugin-snapshots
14+
initPlugin(on, config);
15+
916
// `on` is used to hook into various events Cypress emits
1017
// `config` is the resolved Cypress config
1118
};
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/* ============================================================================
2+
* Copyright (c) Palo Alto Networks
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
* ========================================================================== */
7+
8+
declare namespace Cypress {
9+
interface Chainable<Subject = any> {
10+
/**
11+
* Custom command to match snapshot
12+
* @example cy.document().toMatchSnapshot()
13+
*/
14+
toMatchSnapshot(
15+
name: string,
16+
options?: SnapshotOptions
17+
): Chainable<Subject>;
18+
}
19+
}

cypress/support/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@
66
* ========================================================================== */
77

88
import "@testing-library/cypress/add-commands";
9+
// eslint-disable-next-line import/no-extraneous-dependencies
10+
import "cypress-plugin-snapshots/commands";

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
"@typescript-eslint/parser": "^6.13.2",
5050
"babel-eslint": "^10.0.0",
5151
"cypress": "^8.7.0",
52+
"cypress-plugin-snapshots": "^1.4.4",
5253
"eslint": "^7.5.0",
5354
"eslint-config-react-app": "^6.0.0",
5455
"eslint-plugin-cypress": "^2.12.1",

0 commit comments

Comments
 (0)