Skip to content

Commit

Permalink
test(*): add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Leopoldthecoder committed Jul 17, 2024
1 parent 2dea7a7 commit 1a35a83
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<CertificateForm
:certificate-id="id"
:config="kongManagerConfig"
show-snis-field
@error="onError"
@update="onUpdate"
/>
Expand Down Expand Up @@ -48,6 +49,7 @@ const kongManagerConfig = ref<KongManagerCertificateFormConfig>({
workspace: 'default',
apiBaseUrl: '/kong-manager', // For local dev server proxy
cancelRoute: { name: 'certificate-list' },
sniListRoute: { name: 'sni-list' },
})
const onError = (error: AxiosError) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,22 @@ import type { KongManagerCertificateFormConfig, KonnectCertificateFormConfig } f
import CertificateForm from './CertificateForm.vue'

const cancelRoute = { name: 'certificates-list' }
const sniListRoute = { name: 'snis-list' }

const baseConfigKonnect:KonnectCertificateFormConfig = {
const baseConfigKonnect: KonnectCertificateFormConfig = {
app: 'konnect',
controlPlaneId: '1234-abcd-ilove-cats',
apiBaseUrl: '/us/kong-api',
cancelRoute,
sniListRoute,
}

const baseConfigKM:KongManagerCertificateFormConfig = {
const baseConfigKM: KongManagerCertificateFormConfig = {
app: 'kongManager',
workspace: 'default',
apiBaseUrl: '/kong-manager',
cancelRoute,
sniListRoute,
}

/**
Expand Down Expand Up @@ -120,6 +123,7 @@ describe('<CertificateForm />', () => {
cy.mount(CertificateForm, {
props: {
config: baseConfigKM,
showSnisField: true,
},
})
cy.get('.kong-ui-entities-certificates-form').should('be.visible')
Expand All @@ -134,6 +138,7 @@ describe('<CertificateForm />', () => {
cy.getTestId('certificate-form-key').should('be.visible')
cy.getTestId('certificate-form-cert-alt').should('be.visible')
cy.getTestId('certificate-form-key-alt').should('be.visible')
cy.getTestId('sni-field-input-1').should('be.visible')
cy.getTestId('certificate-form-tags').should('be.visible')
})

Expand All @@ -151,8 +156,8 @@ describe('<CertificateForm />', () => {
cy.getTestId('form-cancel').should('be.enabled')
cy.getTestId('form-submit').should('be.disabled')
// enables save when required fields have values
cy.getTestId('certificate-form-cert').type(certificate1.cert)
cy.getTestId('certificate-form-key').type(certificate1.key)
cy.getTestId('certificate-form-cert').type(certificate1.cert, { delay: 0 })
cy.getTestId('certificate-form-key').type(certificate1.key, { delay: 0 })
cy.getTestId('form-submit').should('be.enabled')
// disables save when required field is cleared
cy.getTestId('certificate-form-cert').clear()
Expand Down Expand Up @@ -279,12 +284,12 @@ describe('<CertificateForm />', () => {
cy.getTestId('form-cancel').should('be.enabled')
cy.getTestId('form-submit').should('be.disabled')
// enables save when required fields have values
cy.getTestId('certificate-form-cert').type(certificate1.cert)
cy.getTestId('certificate-form-key').type(certificate1.key)
cy.getTestId('certificate-form-cert').type(certificate1.cert, { delay: 0 })
cy.getTestId('certificate-form-key').type(certificate1.key, { delay: 0 })

// replaces all the newlines with spaces; this should fail the validation
cy.getTestId('certificate-form-cert-alt').type(secp384r1CertKeyPair.cert.replaceAll('\n', ' '))
cy.getTestId('certificate-form-key-alt').type(secp384r1CertKeyPair.key.replaceAll('\n', ' '))
cy.getTestId('certificate-form-cert-alt').type(secp384r1CertKeyPair.cert.replaceAll('\n', ' '), { delay: 0 })
cy.getTestId('certificate-form-key-alt').type(secp384r1CertKeyPair.key.replaceAll('\n', ' '), { delay: 0 })

cy.getTestId('form-submit').should('be.enabled')

Expand Down Expand Up @@ -312,12 +317,43 @@ describe('<CertificateForm />', () => {
cy.getTestId('form-cancel').should('be.enabled')
cy.getTestId('form-submit').should('be.disabled')
// enables save when required fields have values
cy.getTestId('certificate-form-cert').type(certificate1.cert)
cy.getTestId('certificate-form-key').type(certificate1.key)
cy.getTestId('certificate-form-cert').type(certificate1.cert, { delay: 0 })
cy.getTestId('certificate-form-key').type(certificate1.key, { delay: 0 })

// replaces all the newlines with spaces; this should fail the validation
cy.getTestId('certificate-form-cert-alt').type(secp384r1CertKeyPair.cert)
cy.getTestId('certificate-form-key-alt').type(secp384r1CertKeyPair.key)
cy.getTestId('certificate-form-cert-alt').type(secp384r1CertKeyPair.cert, { delay: 0 })
cy.getTestId('certificate-form-key-alt').type(secp384r1CertKeyPair.key, { delay: 0 })

cy.getTestId('form-submit').should('be.enabled')

cy.get('@vueWrapper').then((wrapper: any) => wrapper.findComponent(EntityBaseForm)
.vm.$emit('submit'))

cy.wait('@validateCertificate').its('response.statusCode').should('eq', 200)
cy.wait('@createCertificate').its('response.statusCode').should('eq', 200)
})

it('should not fail when SNI is provided', () => {
interceptKM()
interceptUpdate()

cy.mount(CertificateForm, {
props: {
config: baseConfigKM,
showSnisField: true,
},
}).then(({ wrapper }) => wrapper)
.as('vueWrapper')

cy.get('.kong-ui-entities-certificates-form').should('be.visible')
// default button state
cy.getTestId('form-cancel').should('be.visible')
cy.getTestId('form-submit').should('be.visible')
cy.getTestId('form-cancel').should('be.enabled')
cy.getTestId('form-submit').should('be.disabled')
cy.getTestId('certificate-form-cert').type(certificate1.cert, { delay: 0 })
cy.getTestId('certificate-form-key').type(certificate1.key, { delay: 0 })
cy.getTestId('sni-field-input-1').type('foo')

cy.getTestId('form-submit').should('be.enabled')

Expand Down Expand Up @@ -391,6 +427,7 @@ describe('<CertificateForm />', () => {
cy.mount(CertificateForm, {
props: {
config: baseConfigKonnect,
showSnisField: true,
},
})

Expand All @@ -406,6 +443,7 @@ describe('<CertificateForm />', () => {
cy.getTestId('certificate-form-key').should('be.visible')
cy.getTestId('certificate-form-cert-alt').should('be.visible')
cy.getTestId('certificate-form-key-alt').should('be.visible')
cy.getTestId('sni-field-input-1').should('be.visible')
cy.getTestId('certificate-form-tags').should('be.visible')
})

Expand All @@ -422,8 +460,8 @@ describe('<CertificateForm />', () => {
cy.getTestId('form-cancel').should('be.enabled')
cy.getTestId('form-submit').should('be.disabled')
// enables save when required fields have values
cy.getTestId('certificate-form-cert').type(certificate1.cert)
cy.getTestId('certificate-form-key').type(certificate1.key)
cy.getTestId('certificate-form-cert').type(certificate1.cert, { delay: 0 })
cy.getTestId('certificate-form-key').type(certificate1.key, { delay: 0 })
cy.getTestId('form-submit').should('be.enabled')
// disables save when required field is cleared
cy.getTestId('certificate-form-cert').clear()
Expand Down Expand Up @@ -550,12 +588,12 @@ describe('<CertificateForm />', () => {
cy.getTestId('form-cancel').should('be.enabled')
cy.getTestId('form-submit').should('be.disabled')
// enables save when required fields have values
cy.getTestId('certificate-form-cert').type(certificate1.cert)
cy.getTestId('certificate-form-key').type(certificate1.key)
cy.getTestId('certificate-form-cert').type(certificate1.cert, { delay: 0 })
cy.getTestId('certificate-form-key').type(certificate1.key, { delay: 0 })

// replaces all the newlines with spaces; this should fail the validation
cy.getTestId('certificate-form-cert-alt').type(secp384r1CertKeyPair.cert.replaceAll('\n', ' '))
cy.getTestId('certificate-form-key-alt').type(secp384r1CertKeyPair.key.replaceAll('\n', ' '))
cy.getTestId('certificate-form-cert-alt').type(secp384r1CertKeyPair.cert.replaceAll('\n', ' '), { delay: 0 })
cy.getTestId('certificate-form-key-alt').type(secp384r1CertKeyPair.key.replaceAll('\n', ' '), { delay: 0 })

cy.getTestId('form-submit').should('be.enabled')

Expand Down Expand Up @@ -583,12 +621,43 @@ describe('<CertificateForm />', () => {
cy.getTestId('form-cancel').should('be.enabled')
cy.getTestId('form-submit').should('be.disabled')
// enables save when required fields have values
cy.getTestId('certificate-form-cert').type(certificate1.cert)
cy.getTestId('certificate-form-key').type(certificate1.key)
cy.getTestId('certificate-form-cert').type(certificate1.cert, { delay: 0 })
cy.getTestId('certificate-form-key').type(certificate1.key, { delay: 0 })

// replaces all the newlines with spaces; this should fail the validation
cy.getTestId('certificate-form-cert-alt').type(secp384r1CertKeyPair.cert)
cy.getTestId('certificate-form-key-alt').type(secp384r1CertKeyPair.key)
cy.getTestId('certificate-form-cert-alt').type(secp384r1CertKeyPair.cert, { delay: 0 })
cy.getTestId('certificate-form-key-alt').type(secp384r1CertKeyPair.key, { delay: 0 })

cy.getTestId('form-submit').should('be.enabled')

cy.get('@vueWrapper').then((wrapper: any) => wrapper.findComponent(EntityBaseForm)
.vm.$emit('submit'))

cy.wait('@validateCertificate').its('response.statusCode').should('eq', 200)
cy.wait('@createCertificate').its('response.statusCode').should('eq', 200)
})

it('should not fail when SNI is provided', () => {
interceptKonnect()
interceptUpdate()

cy.mount(CertificateForm, {
props: {
config: baseConfigKonnect,
showSnisField: true,
},
}).then(({ wrapper }) => wrapper)
.as('vueWrapper')

cy.get('.kong-ui-entities-certificates-form').should('be.visible')
// default button state
cy.getTestId('form-cancel').should('be.visible')
cy.getTestId('form-submit').should('be.visible')
cy.getTestId('form-cancel').should('be.enabled')
cy.getTestId('form-submit').should('be.disabled')
cy.getTestId('certificate-form-cert').type(certificate1.cert, { delay: 0 })
cy.getTestId('certificate-form-key').type(certificate1.key, { delay: 0 })
cy.getTestId('sni-field-input-1').type('foo')

cy.getTestId('form-submit').should('be.enabled')

Expand Down

0 comments on commit 1a35a83

Please sign in to comment.