fleet/frontend/components/forms/admin/AppConfigForm/validate.tests.js
Mike Stone e565e03130 License features (#1134)
* API client to create and get an app license

* Fixes unhandled promise rejection errors in redux config

* License Page and Form

* Adds getLicense action

* Adds License key area to App Settings Form

* Use license.token instead of license.license

* Implement API client

* Adds key icon to License Form

* Adds License Success component

* Render License Success on License Page when there is a license

* Adds persistent flash actions and reducer to redux

* Adds nag message middleware

* Moves FlashMessage component to flash_message directory

* Adds Persistent Flash component

* Renders Persistent Flash component from Core Layout

* Adds Kyle's styles

* Change license validation message

* Finishing touches for app config form license area

* Handle revoked licenses

* License Page hits setup endpoint

* Display server errors on license form

* Changes 0 allowed hosts to unlimited

* Trims JWT token before sending to the server

* GET setup page after submitting license
2017-02-09 22:16:51 -05:00

191 lines
4.6 KiB
JavaScript

import expect from 'expect';
import validate from 'components/forms/admin/AppConfigForm/validate';
describe('AppConfigForm - validations', () => {
const validFormData = {
org_name: 'The Gnar Co.',
authentication_type: 'username_password',
kolide_server_url: 'https://gnar.dog',
license: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ',
sender_address: '[email protected]',
server: '192.168.99.100',
port: 1025,
user_name: 'gnardog',
password: 'p@ssw0rd',
};
it('returns a valid object when the form data is valid', () => {
expect(validate(validFormData)).toEqual({ valid: true, errors: {} });
});
it('validates presense of the license field', () => {
const invalidFormData = {
...validFormData,
license: '',
};
expect(validate(invalidFormData)).toEqual({
valid: false,
errors: {
license: 'License must be present',
},
});
});
it('validates the license is a JWT token', () => {
const invalidFormData = {
...validFormData,
license: 'KFBR392',
};
expect(validate(invalidFormData)).toEqual({
valid: false,
errors: {
license: 'License is not a valid JWT token',
},
});
});
it('validates presence of the org_name field', () => {
const invalidFormData = {
...validFormData,
org_name: '',
};
expect(validate(invalidFormData)).toEqual({
valid: false,
errors: {
org_name: 'Organization Name must be present',
},
});
});
it('validates presence of the kolide_server_url field', () => {
const invalidFormData = {
...validFormData,
kolide_server_url: '',
};
expect(validate(invalidFormData)).toEqual({
valid: false,
errors: {
kolide_server_url: 'Kolide Server URL must be present',
},
});
});
describe('smtp configurations', () => {
it('validates the sender address', () => {
const invalidFormData = {
...validFormData,
sender_address: '',
};
expect(validate(invalidFormData)).toEqual({
valid: false,
errors: {
sender_address: 'SMTP Sender Address must be present',
},
});
});
it('validates the smtp server', () => {
const invalidFormData = {
...validFormData,
server: '',
};
expect(validate(invalidFormData)).toEqual({
valid: false,
errors: {
server: 'SMTP Server must be present',
},
});
});
it('validates the smtp server', () => {
const invalidFormData = {
...validFormData,
port: '',
};
expect(validate(invalidFormData)).toEqual({
valid: false,
errors: {
server: 'SMTP Server Port must be present',
},
});
});
it('validates the password if auth type is not "none"', () => {
const invalidFormData = {
...validFormData,
password: '',
};
expect(validate(invalidFormData)).toEqual({
valid: false,
errors: {
password: 'SMTP Password must be present',
},
});
});
it('validates the user_name if auth type is not "none"', () => {
const invalidFormData = {
...validFormData,
user_name: '',
};
expect(validate(invalidFormData)).toEqual({
valid: false,
errors: {
user_name: 'SMTP Username must be present',
},
});
});
it('does not validate smtp config if only password is present and it is the fake password', () => {
const formData = {
...validFormData,
user_name: '',
server: '',
sender_address: '',
password: '********',
};
const invalidFormData = {
...validFormData,
user_name: '',
server: '',
sender_address: '',
password: 'newPassword',
};
expect(validate(formData)).toEqual({
valid: true,
errors: {},
});
expect(validate(invalidFormData)).toEqual({
valid: false,
errors: {
sender_address: 'SMTP Sender Address must be present',
server: 'SMTP Server must be present',
user_name: 'SMTP Username must be present',
},
});
});
it('does not validate the user_name and password if the auth type is "none"', () => {
const formData = {
...validFormData,
authentication_type: 'authtype_none',
password: '',
user_name: '',
};
expect(validate(formData)).toEqual({ valid: true, errors: {} });
});
});
});