validate.spec.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright (c) Jupyter Development Team.
  2. import 'jest';
  3. import { JSONObject } from '@lumino/coreutils';
  4. import {
  5. validateSpecModel,
  6. validateSpecModels
  7. } from '../../src/kernelspec/validate';
  8. import { PYTHON_SPEC } from '../utils';
  9. describe('kernelspec/validate', () => {
  10. describe('#validateSpecModel', () => {
  11. it('should pass with valid data', () => {
  12. validateSpecModel(PYTHON_SPEC);
  13. });
  14. it('should fail on missing data', () => {
  15. const spec = JSON.parse(JSON.stringify(PYTHON_SPEC));
  16. delete spec['name'];
  17. expect(() => validateSpecModel(spec)).toThrowError();
  18. });
  19. it('should fail on incorrect data', () => {
  20. const spec = JSON.parse(JSON.stringify(PYTHON_SPEC));
  21. spec.spec.language = 1;
  22. expect(() => validateSpecModel(spec)).toThrowError();
  23. });
  24. });
  25. describe('#validateSpecModels', () => {
  26. it('should pass with valid data', () => {
  27. const model: JSONObject = {
  28. default: 'python',
  29. kernelspecs: {
  30. python: PYTHON_SPEC
  31. }
  32. };
  33. validateSpecModels(model);
  34. });
  35. it('should fail on missing data', () => {
  36. const model: any = {
  37. default: 'python'
  38. };
  39. expect(() => validateSpecModels(model)).toThrowError();
  40. });
  41. });
  42. });