|
| 1 | +import semver from 'semver'; |
| 2 | +import { ReactRequiredDependencyProvider } from '../commands/utils/codegen-ui-dependency-provider'; |
| 3 | + |
| 4 | +describe('ReactStudioDependencyProvider', () => { |
| 5 | + const requiredDependencies = new ReactRequiredDependencyProvider().getRequiredDependencies(false); |
| 6 | + const requiredDependenciesWithStorageManager = new ReactRequiredDependencyProvider().getRequiredDependencies(true); |
| 7 | + |
| 8 | + describe('getRequiredDependencies', () => { |
| 9 | + it('has required dependencies', () => { |
| 10 | + expect(requiredDependencies.length).toBeGreaterThan(0); |
| 11 | + }); |
| 12 | + |
| 13 | + it('includes ui-react', () => { |
| 14 | + expect(requiredDependencies.filter((dep) => dep.dependencyName === '@aws-amplify/ui-react')).toBeTruthy(); |
| 15 | + }); |
| 16 | + |
| 17 | + it('includes all valid semver values', () => { |
| 18 | + requiredDependencies.forEach((dep) => { |
| 19 | + expect(semver.valid(dep.supportedSemVerPattern)).toBeDefined(); |
| 20 | + }); |
| 21 | + }); |
| 22 | + |
| 23 | + it('includes reasons on all dependencies', () => { |
| 24 | + requiredDependencies.forEach((dep) => { |
| 25 | + expect(dep.reason.length).toBeGreaterThan(0); |
| 26 | + }); |
| 27 | + }); |
| 28 | + |
| 29 | + it('does not include ui-react-storage if user does not use StorageManager', () => { |
| 30 | + expect(requiredDependencies.filter((dep) => dep.dependencyName !== '@aws-amplify/ui-react-storage')).toBeTruthy(); |
| 31 | + }); |
| 32 | + |
| 33 | + it('includes ui-react-storage if user is using StorageManager', () => { |
| 34 | + expect(requiredDependenciesWithStorageManager.filter((dep) => dep.dependencyName === '@aws-amplify/ui-react-storage')).toBeTruthy(); |
| 35 | + }); |
| 36 | + }); |
| 37 | +}); |
0 commit comments