@sprucelabs/spruce-test-fixtures 62.2.24 → 62.2.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/esm/index.d.ts +1 -1
- package/build/esm/index.js +1 -1
- package/build/esm/tests/fixtures/ViewFixture.d.ts +1 -1
- package/build/esm/tests/routers/TestRouter.d.ts +1 -1
- package/build/esm/tests/routers/TestRouter.js +1 -1
- package/build/index.d.ts +1 -1
- package/build/index.js +1 -1
- package/build/tests/fixtures/ViewFixture.d.ts +1 -1
- package/build/tests/routers/TestRouter.d.ts +1 -1
- package/build/tests/routers/TestRouter.js +1 -1
- package/package.json +19 -19
- package/build/__tests__/behavioral/DecoratoringEmitToPassThroughProxy.test.d.ts +0 -15
- package/build/__tests__/behavioral/DecoratoringEmitToPassThroughProxy.test.js +0 -112
- package/build/__tests__/behavioral/DelaysConnectWhenOnlyUsingLoginDecorator.test.d.ts +0 -4
- package/build/__tests__/behavioral/DelaysConnectWhenOnlyUsingLoginDecorator.test.js +0 -34
- package/build/__tests__/behavioral/DisablingSchemaValidationOnTest.test.d.ts +0 -5
- package/build/__tests__/behavioral/DisablingSchemaValidationOnTest.test.js +0 -26
- package/build/__tests__/behavioral/DoesntResetAccountIfOnlySeedingLocally.test.d.ts +0 -8
- package/build/__tests__/behavioral/DoesntResetAccountIfOnlySeedingLocally.test.js +0 -69
- package/build/__tests__/behavioral/FakingEventResponses.test.d.ts +0 -12
- package/build/__tests__/behavioral/FakingEventResponses.test.js +0 -126
- package/build/__tests__/behavioral/FixtureFactory.test.d.ts +0 -7
- package/build/__tests__/behavioral/FixtureFactory.test.js +0 -79
- package/build/__tests__/behavioral/LocationFixture.test.d.ts +0 -17
- package/build/__tests__/behavioral/LocationFixture.test.js +0 -144
- package/build/__tests__/behavioral/LoginDecoratorHandlingProxiesForMe.test.d.ts +0 -12
- package/build/__tests__/behavioral/LoginDecoratorHandlingProxiesForMe.test.js +0 -95
- package/build/__tests__/behavioral/MakingSureLocalEventsAreHandledLocally.test.d.ts +0 -4
- package/build/__tests__/behavioral/MakingSureLocalEventsAreHandledLocally.test.js +0 -35
- package/build/__tests__/behavioral/MercuryFixture.test.d.ts +0 -20
- package/build/__tests__/behavioral/MercuryFixture.test.js +0 -187
- package/build/__tests__/behavioral/OrganizationFixture.test.d.ts +0 -31
- package/build/__tests__/behavioral/OrganizationFixture.test.js +0 -333
- package/build/__tests__/behavioral/PatchingConsoleErrorToErrorStream.test.d.ts +0 -4
- package/build/__tests__/behavioral/PatchingConsoleErrorToErrorStream.test.js +0 -21
- package/build/__tests__/behavioral/PersonFixture.test.d.ts +0 -22
- package/build/__tests__/behavioral/PersonFixture.test.js +0 -225
- package/build/__tests__/behavioral/PhoneNumberIncrementor.test.d.ts +0 -11
- package/build/__tests__/behavioral/PhoneNumberIncrementor.test.js +0 -95
- package/build/__tests__/behavioral/ResettingAccountLocationsInBeforeAll.test.d.ts +0 -8
- package/build/__tests__/behavioral/ResettingAccountLocationsInBeforeAll.test.js +0 -67
- package/build/__tests__/behavioral/ResettingAccountOrgsInAfterAll.test.d.ts +0 -5
- package/build/__tests__/behavioral/ResettingAccountOrgsInAfterAll.test.js +0 -44
- package/build/__tests__/behavioral/ResettingAccountOrgsInBeforeAll.test.d.ts +0 -8
- package/build/__tests__/behavioral/ResettingAccountOrgsInBeforeAll.test.js +0 -55
- package/build/__tests__/behavioral/ResettingFixtureFieldsBeforeEach.test.d.ts +0 -10
- package/build/__tests__/behavioral/ResettingFixtureFieldsBeforeEach.test.js +0 -137
- package/build/__tests__/behavioral/ResettingLocalEventListeningBeforeSeeding.test.d.ts +0 -7
- package/build/__tests__/behavioral/ResettingLocalEventListeningBeforeSeeding.test.js +0 -54
- package/build/__tests__/behavioral/RetainsContractWhenLoggingInUsingDecotorator.test.d.ts +0 -6
- package/build/__tests__/behavioral/RetainsContractWhenLoggingInUsingDecotorator.test.js +0 -40
- package/build/__tests__/behavioral/RoleFixture.test.d.ts +0 -15
- package/build/__tests__/behavioral/RoleFixture.test.js +0 -118
- package/build/__tests__/behavioral/SkillFixture.test.d.ts +0 -13
- package/build/__tests__/behavioral/SkillFixture.test.js +0 -118
- package/build/__tests__/behavioral/databases/CanUseStoresSetupInBeforeEach.test.d.ts +0 -7
- package/build/__tests__/behavioral/databases/CanUseStoresSetupInBeforeEach.test.js +0 -41
- package/build/__tests__/behavioral/databases/DatabaseFixture.test.d.ts +0 -7
- package/build/__tests__/behavioral/databases/DatabaseFixture.test.js +0 -59
- package/build/__tests__/behavioral/databases/DbResetsAsExpected.test.d.ts +0 -5
- package/build/__tests__/behavioral/databases/DbResetsAsExpected.test.js +0 -34
- package/build/__tests__/behavioral/databases/DummyStore.d.ts +0 -55
- package/build/__tests__/behavioral/databases/DummyStore.js +0 -36
- package/build/__tests__/behavioral/databases/StoreFixture.test.d.ts +0 -23
- package/build/__tests__/behavioral/databases/StoreFixture.test.js +0 -156
- package/build/__tests__/behavioral/faking/AuthenticatingAsAPerson.test.d.ts +0 -9
- package/build/__tests__/behavioral/faking/AuthenticatingAsAPerson.test.js +0 -73
- package/build/__tests__/behavioral/faking/FakeDecorator.test.d.ts +0 -45
- package/build/__tests__/behavioral/faking/FakeDecorator.test.js +0 -421
- package/build/__tests__/behavioral/faking/FakeDecoratorSetsPerson.test.d.ts +0 -4
- package/build/__tests__/behavioral/faking/FakeDecoratorSetsPerson.test.js +0 -23
- package/build/__tests__/behavioral/faking/FakeDecoratorWhoAmI.test.d.ts +0 -4
- package/build/__tests__/behavioral/faking/FakeDecoratorWhoAmI.test.js +0 -27
- package/build/__tests__/behavioral/faking/FakeThemeManager.test.d.ts +0 -8
- package/build/__tests__/behavioral/faking/FakeThemeManager.test.js +0 -93
- package/build/__tests__/behavioral/faking/FakingAddingPeopleToALocation.test.d.ts +0 -8
- package/build/__tests__/behavioral/faking/FakingAddingPeopleToALocation.test.js +0 -56
- package/build/__tests__/behavioral/faking/FakingAddingPeopleToAnOrg.test.d.ts +0 -14
- package/build/__tests__/behavioral/faking/FakingAddingPeopleToAnOrg.test.js +0 -141
- package/build/__tests__/behavioral/faking/FakingAuthenticator.test.d.ts +0 -5
- package/build/__tests__/behavioral/faking/FakingAuthenticator.test.js +0 -35
- package/build/__tests__/behavioral/faking/FakingInBeforeEach.test.d.ts +0 -6
- package/build/__tests__/behavioral/faking/FakingInBeforeEach.test.js +0 -42
- package/build/__tests__/behavioral/faking/FakingLocations.test.d.ts +0 -6
- package/build/__tests__/behavioral/faking/FakingLocations.test.js +0 -45
- package/build/__tests__/behavioral/faking/FakingRoleEvents.test.d.ts +0 -19
- package/build/__tests__/behavioral/faking/FakingRoleEvents.test.js +0 -140
- package/build/__tests__/behavioral/faking/FakingSkillEvents.test.d.ts +0 -24
- package/build/__tests__/behavioral/faking/FakingSkillEvents.test.js +0 -174
- package/build/__tests__/behavioral/faking/UpdatePerson.test.d.ts +0 -4
- package/build/__tests__/behavioral/faking/UpdatePerson.test.js +0 -32
- package/build/__tests__/behavioral/faking/UsingFakeDecorators.test.d.ts +0 -35
- package/build/__tests__/behavioral/faking/UsingFakeDecorators.test.js +0 -321
- package/build/__tests__/behavioral/faking/UsingFakesOnIncompatibleClass.test.d.ts +0 -4
- package/build/__tests__/behavioral/faking/UsingFakesOnIncompatibleClass.test.js +0 -48
- package/build/__tests__/behavioral/faking/WhoAmI.test.d.ts +0 -19
- package/build/__tests__/behavioral/faking/WhoAmI.test.js +0 -105
- package/build/__tests__/behavioral/maps/SpyingMapUtil.test.d.ts +0 -10
- package/build/__tests__/behavioral/maps/SpyingMapUtil.test.js +0 -76
- package/build/__tests__/behavioral/permissions/FakeAuthorizer.test.d.ts +0 -34
- package/build/__tests__/behavioral/permissions/FakeAuthorizer.test.js +0 -272
- package/build/__tests__/behavioral/permissions/PermissionFixture.test.d.ts +0 -5
- package/build/__tests__/behavioral/permissions/PermissionFixture.test.js +0 -35
- package/build/__tests__/behavioral/seeding/SeedingData.test.d.ts +0 -24
- package/build/__tests__/behavioral/seeding/SeedingData.test.js +0 -271
- package/build/__tests__/behavioral/seeding/UsingDecorators.test.d.ts +0 -37
- package/build/__tests__/behavioral/seeding/UsingDecorators.test.js +0 -266
- package/build/__tests__/behavioral/seeding/UsingDecoratorsToInstallSkills.test.d.ts +0 -14
- package/build/__tests__/behavioral/seeding/UsingDecoratorsToInstallSkills.test.js +0 -117
- package/build/__tests__/behavioral/views/FakingSkillViewControllers.test.d.ts +0 -12
- package/build/__tests__/behavioral/views/FakingSkillViewControllers.test.js +0 -55
- package/build/__tests__/behavioral/views/Routing.test.d.ts +0 -36
- package/build/__tests__/behavioral/views/Routing.test.js +0 -177
- package/build/__tests__/behavioral/views/TestingScope.test.d.ts +0 -24
- package/build/__tests__/behavioral/views/TestingScope.test.js +0 -197
- package/build/__tests__/behavioral/views/ViewPlugins.test.d.ts +0 -12
- package/build/__tests__/behavioral/views/ViewPlugins.test.js +0 -83
- package/build/__tests__/behavioral/views/WorkingWithTimezones.test.d.ts +0 -11
- package/build/__tests__/behavioral/views/WorkingWithTimezones.test.js +0 -55
- package/build/__tests__/behavioral/views/viewFixture/ViewFixture.test.d.ts +0 -118
- package/build/__tests__/behavioral/views/viewFixture/ViewFixture.test.js +0 -761
- package/build/__tests__/behavioral/views/viewFixture/ViewFixtureLetsYouOverrideViewControllerFactory.test.d.ts +0 -5
- package/build/__tests__/behavioral/views/viewFixture/ViewFixtureLetsYouOverrideViewControllerFactory.test.js +0 -29
- package/build/__tests__/support/AbstractFakeDecoratorTest.d.ts +0 -5
- package/build/__tests__/support/AbstractFakeDecoratorTest.js +0 -27
- package/build/__tests__/support/EventFaker.d.ts +0 -5
- package/build/__tests__/support/EventFaker.js +0 -36
- package/build/__tests__/support/RandomViewPlugin.d.ts +0 -2
- package/build/__tests__/support/RandomViewPlugin.js +0 -5
- package/build/__tests__/support/RandomViewPlugin2.d.ts +0 -2
- package/build/__tests__/support/RandomViewPlugin2.js +0 -5
- package/build/__tests__/testDirsAndFiles/one-good-store-skill/build/.spruce/stores/stores.d.ts +0 -5
- package/build/__tests__/testDirsAndFiles/one-good-store-skill/build/.spruce/stores/stores.js +0 -9
- package/build/__tests__/testDirsAndFiles/one-good-store-skill/build/stores/Good.store.d.ts +0 -51
- package/build/__tests__/testDirsAndFiles/one-good-store-skill/build/stores/Good.store.js +0 -33
- package/build/__tests__/testDirsAndFiles/one-good-store-skill/src/.spruce/settings.json +0 -6
- package/build/__tests__/testDirsAndFiles/plugins1/build/.spruce/views/views.d.ts +0 -6
- package/build/__tests__/testDirsAndFiles/plugins1/build/.spruce/views/views.js +0 -11
- package/build/__tests__/testDirsAndFiles/plugins2/build/.spruce/views/views.d.ts +0 -6
- package/build/__tests__/testDirsAndFiles/plugins2/build/.spruce/views/views.js +0 -11
- package/build/__tests__/testDirsAndFiles/skill/build/.spruce/views/views.js +0 -18
- package/build/__tests__/testDirsAndFiles/skill/build/skillViewControllers/Book.svc.d.ts +0 -5
- package/build/__tests__/testDirsAndFiles/skill/build/skillViewControllers/Book.svc.js +0 -11
- package/build/__tests__/testDirsAndFiles/skill/build/skillViewControllers/Spy.svc.d.ts +0 -7
- package/build/__tests__/testDirsAndFiles/skill/build/skillViewControllers/Spy.svc.js +0 -19
- package/build/__tests__/testDirsAndFiles/skill/build/viewControllers/BookForm.vc.d.ts +0 -8
- package/build/__tests__/testDirsAndFiles/skill/build/viewControllers/BookForm.vc.js +0 -31
- package/build/__tests__/testDirsAndFiles/skill/package.json +0 -5
- package/build/__tests__/testDirsAndFiles/skill/src/.spruce/settings.json +0 -6
- package/build/__tests__/testDirsAndFiles/skill/src/.spruce/views/views.d.ts +0 -7
- package/build/__tests__/testDirsAndFiles/skill/src/.spruce/views/views.js +0 -17
- package/build/__tests__/testDirsAndFiles/skill/src/skillViewControllers/Book.svc.d.ts +0 -5
- package/build/__tests__/testDirsAndFiles/skill/src/skillViewControllers/Book.svc.js +0 -11
- package/build/__tests__/testDirsAndFiles/skill/src/viewControllers/BookForm.vc.d.ts +0 -8
- package/build/__tests__/testDirsAndFiles/skill/src/viewControllers/BookForm.vc.js +0 -31
- package/build/esm/__tests__/behavioral/DecoratoringEmitToPassThroughProxy.test.d.ts +0 -15
- package/build/esm/__tests__/behavioral/DecoratoringEmitToPassThroughProxy.test.js +0 -128
- package/build/esm/__tests__/behavioral/DelaysConnectWhenOnlyUsingLoginDecorator.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/DelaysConnectWhenOnlyUsingLoginDecorator.test.js +0 -40
- package/build/esm/__tests__/behavioral/DisablingSchemaValidationOnTest.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/DisablingSchemaValidationOnTest.test.js +0 -23
- package/build/esm/__tests__/behavioral/DoesntResetAccountIfOnlySeedingLocally.test.d.ts +0 -8
- package/build/esm/__tests__/behavioral/DoesntResetAccountIfOnlySeedingLocally.test.js +0 -80
- package/build/esm/__tests__/behavioral/FakingEventResponses.test.d.ts +0 -12
- package/build/esm/__tests__/behavioral/FakingEventResponses.test.js +0 -148
- package/build/esm/__tests__/behavioral/FixtureFactory.test.d.ts +0 -7
- package/build/esm/__tests__/behavioral/FixtureFactory.test.js +0 -61
- package/build/esm/__tests__/behavioral/LocationFixture.test.d.ts +0 -17
- package/build/esm/__tests__/behavioral/LocationFixture.test.js +0 -173
- package/build/esm/__tests__/behavioral/LoginDecoratorHandlingProxiesForMe.test.d.ts +0 -12
- package/build/esm/__tests__/behavioral/LoginDecoratorHandlingProxiesForMe.test.js +0 -113
- package/build/esm/__tests__/behavioral/MakingSureLocalEventsAreHandledLocally.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/MakingSureLocalEventsAreHandledLocally.test.js +0 -41
- package/build/esm/__tests__/behavioral/MercuryFixture.test.d.ts +0 -20
- package/build/esm/__tests__/behavioral/MercuryFixture.test.js +0 -223
- package/build/esm/__tests__/behavioral/OrganizationFixture.test.d.ts +0 -31
- package/build/esm/__tests__/behavioral/OrganizationFixture.test.js +0 -389
- package/build/esm/__tests__/behavioral/PatchingConsoleErrorToErrorStream.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/PatchingConsoleErrorToErrorStream.test.js +0 -18
- package/build/esm/__tests__/behavioral/PersonFixture.test.d.ts +0 -22
- package/build/esm/__tests__/behavioral/PersonFixture.test.js +0 -232
- package/build/esm/__tests__/behavioral/PhoneNumberIncrementor.test.d.ts +0 -11
- package/build/esm/__tests__/behavioral/PhoneNumberIncrementor.test.js +0 -112
- package/build/esm/__tests__/behavioral/ResettingAccountLocationsInBeforeAll.test.d.ts +0 -8
- package/build/esm/__tests__/behavioral/ResettingAccountLocationsInBeforeAll.test.js +0 -84
- package/build/esm/__tests__/behavioral/ResettingAccountOrgsInAfterAll.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/ResettingAccountOrgsInAfterAll.test.js +0 -55
- package/build/esm/__tests__/behavioral/ResettingAccountOrgsInBeforeAll.test.d.ts +0 -8
- package/build/esm/__tests__/behavioral/ResettingAccountOrgsInBeforeAll.test.js +0 -72
- package/build/esm/__tests__/behavioral/ResettingFixtureFieldsBeforeEach.test.d.ts +0 -10
- package/build/esm/__tests__/behavioral/ResettingFixtureFieldsBeforeEach.test.js +0 -146
- package/build/esm/__tests__/behavioral/ResettingLocalEventListeningBeforeSeeding.test.d.ts +0 -7
- package/build/esm/__tests__/behavioral/ResettingLocalEventListeningBeforeSeeding.test.js +0 -66
- package/build/esm/__tests__/behavioral/RetainsContractWhenLoggingInUsingDecotorator.test.d.ts +0 -6
- package/build/esm/__tests__/behavioral/RetainsContractWhenLoggingInUsingDecotorator.test.js +0 -51
- package/build/esm/__tests__/behavioral/RoleFixture.test.d.ts +0 -15
- package/build/esm/__tests__/behavioral/RoleFixture.test.js +0 -143
- package/build/esm/__tests__/behavioral/SkillFixture.test.d.ts +0 -13
- package/build/esm/__tests__/behavioral/SkillFixture.test.js +0 -141
- package/build/esm/__tests__/behavioral/databases/CanUseStoresSetupInBeforeEach.test.d.ts +0 -7
- package/build/esm/__tests__/behavioral/databases/CanUseStoresSetupInBeforeEach.test.js +0 -53
- package/build/esm/__tests__/behavioral/databases/DatabaseFixture.test.d.ts +0 -7
- package/build/esm/__tests__/behavioral/databases/DatabaseFixture.test.js +0 -48
- package/build/esm/__tests__/behavioral/databases/DbResetsAsExpected.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/databases/DbResetsAsExpected.test.js +0 -28
- package/build/esm/__tests__/behavioral/databases/DummyStore.d.ts +0 -55
- package/build/esm/__tests__/behavioral/databases/DummyStore.js +0 -43
- package/build/esm/__tests__/behavioral/databases/StoreFixture.test.d.ts +0 -23
- package/build/esm/__tests__/behavioral/databases/StoreFixture.test.js +0 -164
- package/build/esm/__tests__/behavioral/faking/AuthenticatingAsAPerson.test.d.ts +0 -9
- package/build/esm/__tests__/behavioral/faking/AuthenticatingAsAPerson.test.js +0 -89
- package/build/esm/__tests__/behavioral/faking/FakeDecorator.test.d.ts +0 -45
- package/build/esm/__tests__/behavioral/faking/FakeDecorator.test.js +0 -482
- package/build/esm/__tests__/behavioral/faking/FakeDecoratorSetsPerson.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/faking/FakeDecoratorSetsPerson.test.js +0 -28
- package/build/esm/__tests__/behavioral/faking/FakeDecoratorWhoAmI.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/faking/FakeDecoratorWhoAmI.test.js +0 -32
- package/build/esm/__tests__/behavioral/faking/FakeThemeManager.test.d.ts +0 -8
- package/build/esm/__tests__/behavioral/faking/FakeThemeManager.test.js +0 -82
- package/build/esm/__tests__/behavioral/faking/FakingAddingPeopleToALocation.test.d.ts +0 -8
- package/build/esm/__tests__/behavioral/faking/FakingAddingPeopleToALocation.test.js +0 -70
- package/build/esm/__tests__/behavioral/faking/FakingAddingPeopleToAnOrg.test.d.ts +0 -14
- package/build/esm/__tests__/behavioral/faking/FakingAddingPeopleToAnOrg.test.js +0 -165
- package/build/esm/__tests__/behavioral/faking/FakingAuthenticator.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/faking/FakingAuthenticator.test.js +0 -43
- package/build/esm/__tests__/behavioral/faking/FakingInBeforeEach.test.d.ts +0 -6
- package/build/esm/__tests__/behavioral/faking/FakingInBeforeEach.test.js +0 -55
- package/build/esm/__tests__/behavioral/faking/FakingLocations.test.d.ts +0 -6
- package/build/esm/__tests__/behavioral/faking/FakingLocations.test.js +0 -55
- package/build/esm/__tests__/behavioral/faking/FakingRoleEvents.test.d.ts +0 -19
- package/build/esm/__tests__/behavioral/faking/FakingRoleEvents.test.js +0 -175
- package/build/esm/__tests__/behavioral/faking/FakingSkillEvents.test.d.ts +0 -24
- package/build/esm/__tests__/behavioral/faking/FakingSkillEvents.test.js +0 -214
- package/build/esm/__tests__/behavioral/faking/UpdatePerson.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/faking/UpdatePerson.test.js +0 -38
- package/build/esm/__tests__/behavioral/faking/UsingFakeDecorators.test.d.ts +0 -35
- package/build/esm/__tests__/behavioral/faking/UsingFakeDecorators.test.js +0 -360
- package/build/esm/__tests__/behavioral/faking/UsingFakesOnIncompatibleClass.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/faking/UsingFakesOnIncompatibleClass.test.js +0 -31
- package/build/esm/__tests__/behavioral/faking/WhoAmI.test.d.ts +0 -19
- package/build/esm/__tests__/behavioral/faking/WhoAmI.test.js +0 -142
- package/build/esm/__tests__/behavioral/maps/SpyingMapUtil.test.d.ts +0 -10
- package/build/esm/__tests__/behavioral/maps/SpyingMapUtil.test.js +0 -94
- package/build/esm/__tests__/behavioral/permissions/FakeAuthorizer.test.d.ts +0 -34
- package/build/esm/__tests__/behavioral/permissions/FakeAuthorizer.test.js +0 -324
- package/build/esm/__tests__/behavioral/permissions/PermissionFixture.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/permissions/PermissionFixture.test.js +0 -43
- package/build/esm/__tests__/behavioral/seeding/SeedingData.test.d.ts +0 -24
- package/build/esm/__tests__/behavioral/seeding/SeedingData.test.js +0 -314
- package/build/esm/__tests__/behavioral/seeding/UsingDecorators.test.d.ts +0 -37
- package/build/esm/__tests__/behavioral/seeding/UsingDecorators.test.js +0 -322
- package/build/esm/__tests__/behavioral/seeding/UsingDecoratorsToInstallSkills.test.d.ts +0 -14
- package/build/esm/__tests__/behavioral/seeding/UsingDecoratorsToInstallSkills.test.js +0 -138
- package/build/esm/__tests__/behavioral/views/FakingSkillViewControllers.test.d.ts +0 -12
- package/build/esm/__tests__/behavioral/views/FakingSkillViewControllers.test.js +0 -70
- package/build/esm/__tests__/behavioral/views/Routing.test.d.ts +0 -36
- package/build/esm/__tests__/behavioral/views/Routing.test.js +0 -212
- package/build/esm/__tests__/behavioral/views/TestingScope.test.d.ts +0 -24
- package/build/esm/__tests__/behavioral/views/TestingScope.test.js +0 -238
- package/build/esm/__tests__/behavioral/views/ViewPlugins.test.d.ts +0 -12
- package/build/esm/__tests__/behavioral/views/ViewPlugins.test.js +0 -103
- package/build/esm/__tests__/behavioral/views/WorkingWithTimezones.test.d.ts +0 -11
- package/build/esm/__tests__/behavioral/views/WorkingWithTimezones.test.js +0 -64
- package/build/esm/__tests__/behavioral/views/viewFixture/ViewFixture.test.d.ts +0 -118
- package/build/esm/__tests__/behavioral/views/viewFixture/ViewFixture.test.js +0 -856
- package/build/esm/__tests__/behavioral/views/viewFixture/ViewFixtureLetsYouOverrideViewControllerFactory.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/views/viewFixture/ViewFixtureLetsYouOverrideViewControllerFactory.test.js +0 -39
- package/build/esm/__tests__/support/AbstractFakeDecoratorTest.d.ts +0 -5
- package/build/esm/__tests__/support/AbstractFakeDecoratorTest.js +0 -34
- package/build/esm/__tests__/support/EventFaker.d.ts +0 -5
- package/build/esm/__tests__/support/EventFaker.js +0 -45
- package/build/esm/__tests__/support/RandomViewPlugin.d.ts +0 -2
- package/build/esm/__tests__/support/RandomViewPlugin.js +0 -2
- package/build/esm/__tests__/support/RandomViewPlugin2.d.ts +0 -2
- package/build/esm/__tests__/support/RandomViewPlugin2.js +0 -2
- package/build/esm/__tests__/testDirsAndFiles/one-good-store-skill/build/stores/Good.store.d.ts +0 -51
- package/build/esm/__tests__/testDirsAndFiles/one-good-store-skill/build/stores/Good.store.js +0 -41
- package/build/esm/__tests__/testDirsAndFiles/skill/build/skillViewControllers/Book.svc.d.ts +0 -5
- package/build/esm/__tests__/testDirsAndFiles/skill/build/skillViewControllers/Book.svc.js +0 -9
- package/build/esm/__tests__/testDirsAndFiles/skill/build/skillViewControllers/Spy.svc.d.ts +0 -7
- package/build/esm/__tests__/testDirsAndFiles/skill/build/skillViewControllers/Spy.svc.js +0 -28
- package/build/esm/__tests__/testDirsAndFiles/skill/build/viewControllers/BookForm.vc.d.ts +0 -8
- package/build/esm/__tests__/testDirsAndFiles/skill/build/viewControllers/BookForm.vc.js +0 -26
- package/build/esm/__tests__/testDirsAndFiles/skill/src/skillViewControllers/Book.svc.d.ts +0 -5
- package/build/esm/__tests__/testDirsAndFiles/skill/src/skillViewControllers/Book.svc.js +0 -9
- package/build/esm/__tests__/testDirsAndFiles/skill/src/viewControllers/BookForm.vc.d.ts +0 -8
- package/build/esm/__tests__/testDirsAndFiles/skill/src/viewControllers/BookForm.vc.js +0 -26
- /package/build/{__tests__/support → esm/tests}/FakeThemeManager.d.ts +0 -0
- /package/build/esm/{__tests__/support → tests}/FakeThemeManager.js +0 -0
- /package/build/{esm/__tests__/support → tests}/FakeThemeManager.d.ts +0 -0
- /package/build/{__tests__/support → tests}/FakeThemeManager.js +0 -0
|
@@ -1,421 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
-
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
-
if (mod && mod.__esModule) return mod;
|
|
26
|
-
var result = {};
|
|
27
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
-
__setModuleDefault(result, mod);
|
|
29
|
-
return result;
|
|
30
|
-
};
|
|
31
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
32
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
33
|
-
};
|
|
34
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
const crypto_1 = require("crypto");
|
|
36
|
-
const mercury_client_1 = require("@sprucelabs/mercury-client");
|
|
37
|
-
const schema_1 = require("@sprucelabs/schema");
|
|
38
|
-
const spruce_core_schemas_1 = require("@sprucelabs/spruce-core-schemas");
|
|
39
|
-
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
40
|
-
const test_utils_2 = require("@sprucelabs/test-utils");
|
|
41
|
-
const constants_1 = require("../../../tests/constants");
|
|
42
|
-
const fake_1 = __importStar(require("../../../tests/decorators/fake"));
|
|
43
|
-
const AbstractFakeDecoratorTest_1 = __importDefault(require("../../support/AbstractFakeDecoratorTest"));
|
|
44
|
-
class FakeDecoratorTest extends AbstractFakeDecoratorTest_1.default {
|
|
45
|
-
static async beforeEach() {
|
|
46
|
-
await super.beforeEach();
|
|
47
|
-
this.client = await this.mercury.connectToApi();
|
|
48
|
-
}
|
|
49
|
-
static doesNotThrowWhenMissingPhone() {
|
|
50
|
-
fake_1.default.login();
|
|
51
|
-
}
|
|
52
|
-
static throwsWhenInvalidPhone() {
|
|
53
|
-
//@ts-ignore
|
|
54
|
-
test_utils_1.assert.doesThrow(() => fake_1.default.login((0, test_utils_2.generateId)()));
|
|
55
|
-
}
|
|
56
|
-
static async fakingLoginSetsRequireLocalListeners() {
|
|
57
|
-
await this.fakeLogin(constants_1.DEMO_NUMBER);
|
|
58
|
-
test_utils_1.assert.isTrue(mercury_client_1.MercuryTestClient.getShouldRequireLocalListeners());
|
|
59
|
-
}
|
|
60
|
-
static async getPersonThrowsWithoutPersonId() {
|
|
61
|
-
await this.fakeLogin();
|
|
62
|
-
await test_utils_1.assert.doesThrowAsync(() => this.client.emitAndFlattenResponses('get-person::v2020_12_25', {
|
|
63
|
-
target: {},
|
|
64
|
-
}));
|
|
65
|
-
}
|
|
66
|
-
static async fakesGetPerson() {
|
|
67
|
-
await this.fakeLogin();
|
|
68
|
-
const [{ person }] = await this.client.emitAndFlattenResponses('get-person::v2020_12_25', {
|
|
69
|
-
target: {
|
|
70
|
-
personId: this.fakedPerson.id,
|
|
71
|
-
},
|
|
72
|
-
});
|
|
73
|
-
test_utils_1.assert.isEqualDeep(person, this.fakedPerson);
|
|
74
|
-
}
|
|
75
|
-
static async getPersonThrowsWithBadId() {
|
|
76
|
-
await this.fakeLogin();
|
|
77
|
-
const err = await test_utils_1.assert.doesThrowAsync(() => this.client.emitAndFlattenResponses('get-person::v2020_12_25', {
|
|
78
|
-
target: {
|
|
79
|
-
personId: (0, test_utils_2.generateId)(),
|
|
80
|
-
},
|
|
81
|
-
}));
|
|
82
|
-
test_utils_2.errorAssert.assertError(err, 'INVALID_TARGET');
|
|
83
|
-
}
|
|
84
|
-
static async fakingFailWithMissingParams() {
|
|
85
|
-
//@ts-ignore
|
|
86
|
-
const err = test_utils_1.assert.doesThrow(() => (0, fake_1.default)());
|
|
87
|
-
test_utils_2.errorAssert.assertError(err, 'MISSING_PARAMETERS', {
|
|
88
|
-
parameters: ['target', 'total'],
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
static async failsWithoutOwner() {
|
|
92
|
-
this.fakedPerson = null;
|
|
93
|
-
await test_utils_1.assert.doesThrowAsync(() => this.fakeRecords('organizations', 1), 'faker.login');
|
|
94
|
-
}
|
|
95
|
-
static async seedsOrg(total) {
|
|
96
|
-
await this.fakeLoginAndRecords('organizations', total);
|
|
97
|
-
test_utils_1.assert.isLength(this.fakedOrganizations, total);
|
|
98
|
-
}
|
|
99
|
-
static async fakesGetOrganization(orgIdx) {
|
|
100
|
-
await this.fakeLoginAndRecords('organizations', 2);
|
|
101
|
-
const orgId = this.fakedOrganizations[orgIdx].id;
|
|
102
|
-
const organization = await this.emitGetOrganization(orgId);
|
|
103
|
-
test_utils_1.assert.isEqualDeep(this.fakedOrganizations[orgIdx], organization);
|
|
104
|
-
}
|
|
105
|
-
static async gettingOrgThrowsWithBadOrgId() {
|
|
106
|
-
await this.fakeLoginAndRecords('organizations', 1);
|
|
107
|
-
const err = await test_utils_1.assert.doesThrowAsync(() => this.emitGetOrganization((0, test_utils_2.generateId)()));
|
|
108
|
-
test_utils_2.errorAssert.assertError(err, 'INVALID_TARGET');
|
|
109
|
-
}
|
|
110
|
-
static async fakingOrgsMoreThanOnceStacks() {
|
|
111
|
-
await this.fakeLoginAndRecords('organizations', 1);
|
|
112
|
-
await this.fakeRecords('organizations', 1);
|
|
113
|
-
test_utils_1.assert.isLength(this.fakedOrganizations, 2);
|
|
114
|
-
}
|
|
115
|
-
static async fakesListOrgsAndReturnsNewestFirst() {
|
|
116
|
-
await this.fakeLogin();
|
|
117
|
-
const first = await this.seedAndGetNewestOrganization();
|
|
118
|
-
const second = await this.seedAndGetNewestOrganization();
|
|
119
|
-
test_utils_1.assert.isNotEqual(first.id, second.id);
|
|
120
|
-
const third = await this.seedAndGetNewestOrganization();
|
|
121
|
-
const organizations = await this.listOrganizations();
|
|
122
|
-
const expected = [third, second, first];
|
|
123
|
-
test_utils_1.assert.isEqualDeep(organizations, expected);
|
|
124
|
-
test_utils_1.assert.isEqualDeep(this.fakedOrganizations, expected);
|
|
125
|
-
}
|
|
126
|
-
static async listOrgsHonorsLimit(limit) {
|
|
127
|
-
const orgs = await this.fakeLoginAndListOrgs({
|
|
128
|
-
paging: {
|
|
129
|
-
pageSize: limit,
|
|
130
|
-
},
|
|
131
|
-
});
|
|
132
|
-
test_utils_1.assert.isLength(orgs, limit);
|
|
133
|
-
}
|
|
134
|
-
static async canGetLatestOrgWithScope() {
|
|
135
|
-
await this.fakeLoginAndRecords('organizations', 5);
|
|
136
|
-
const org = await this.views.getScope().getCurrentOrganization();
|
|
137
|
-
test_utils_1.assert.isEqualDeep(org, this.fakedOrganizations[0]);
|
|
138
|
-
}
|
|
139
|
-
static async seedingLocationSeedsOneOrg(totalLocations) {
|
|
140
|
-
await this.fakeLoginAndRecords('locations', totalLocations);
|
|
141
|
-
test_utils_1.assert.isLength(this.fakedOrganizations, 1);
|
|
142
|
-
}
|
|
143
|
-
static async seedsGoodLocation(total) {
|
|
144
|
-
await this.fakeLoginAndRecords('locations', total);
|
|
145
|
-
test_utils_1.assert.isLength(this.fakedLocations, total);
|
|
146
|
-
}
|
|
147
|
-
static async sortsLocationsNewestFirst() {
|
|
148
|
-
await this.fakeLogin();
|
|
149
|
-
const first = await this.seedAndGetNewestLocation();
|
|
150
|
-
const second = await this.seedAndGetNewestLocation();
|
|
151
|
-
test_utils_1.assert.isNotEqual(first.id, second.id);
|
|
152
|
-
const third = await this.seedAndGetNewestLocation();
|
|
153
|
-
const expected = [third, second, first];
|
|
154
|
-
test_utils_1.assert.isEqualDeep(this.fakedLocations, expected);
|
|
155
|
-
}
|
|
156
|
-
static async canGetLocationFromScope() {
|
|
157
|
-
await this.fakeLoginAndRecords('locations', 10);
|
|
158
|
-
const location = await this.views.getScope().getCurrentLocation();
|
|
159
|
-
test_utils_1.assert.isEqualDeep(location, this.fakedLocations[0]);
|
|
160
|
-
}
|
|
161
|
-
static async fakingLoginsFakesRoles() {
|
|
162
|
-
await this.fakeLogin();
|
|
163
|
-
test_utils_1.assert.isLength(this.fakedRoles, 0);
|
|
164
|
-
}
|
|
165
|
-
static async fakingOrgFakesRoles() {
|
|
166
|
-
await this.fakeLoginAndRecords('organizations', 2);
|
|
167
|
-
const expected = spruce_core_schemas_1.BASE_ROLES_WITH_META;
|
|
168
|
-
for (const { slug, name } of expected) {
|
|
169
|
-
test_utils_1.assert.doesInclude(this.fakedRoles, {
|
|
170
|
-
base: slug,
|
|
171
|
-
name: `Faked ${name}`,
|
|
172
|
-
organizationId: this.fakedOrganizations[0].id,
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
static async listRolesReturnsFakedRoles() {
|
|
177
|
-
const roles = await this.fakeLoginAndListRoles(0);
|
|
178
|
-
test_utils_1.assert.isEqualDeep(roles, this.fakedRoles.filter((r) => r.organizationId === this.fakedOrganizations[0].id));
|
|
179
|
-
}
|
|
180
|
-
static async listRolesHonorsOrgId() {
|
|
181
|
-
const roles = await this.fakeLoginAndListRoles(1);
|
|
182
|
-
test_utils_1.assert.isEqualDeep(roles, this.fakedRoles.filter((r) => r.organizationId === this.fakedOrganizations[1].id));
|
|
183
|
-
}
|
|
184
|
-
static async listRolesForPersonWithoutTargetingOrgReturnsAllRolesForPerson() {
|
|
185
|
-
const { personId, organizationId } = await this.createMultipleOrgsAndAddOwnerAdditionalTeammateRoleAtRandomOrg();
|
|
186
|
-
await this.organizations.addPerson({
|
|
187
|
-
personId,
|
|
188
|
-
organizationId,
|
|
189
|
-
roleBase: 'teammate',
|
|
190
|
-
});
|
|
191
|
-
const [{ roles }] = await this.listRolesForPerson(personId);
|
|
192
|
-
test_utils_1.assert.isEqualDeep(roles.sort((a, b) => (a.id > b.id ? 1 : -1)), this.fakedRoles
|
|
193
|
-
.filter((r) => r.base === 'owner' ||
|
|
194
|
-
(r.base === 'teammate' &&
|
|
195
|
-
r.organizationId === organizationId))
|
|
196
|
-
.sort((a, b) => (a.id > b.id ? 1 : -1)));
|
|
197
|
-
}
|
|
198
|
-
static async canSyncTeammates(target, total) {
|
|
199
|
-
var _a, _b;
|
|
200
|
-
await this.fakeLoginAndRecords('locations', 1);
|
|
201
|
-
await this.fakeRecords(target, total);
|
|
202
|
-
const fakedProp =
|
|
203
|
-
//@ts-ignore
|
|
204
|
-
this[(0, fake_1.fakeTargetToPropName)(target)];
|
|
205
|
-
test_utils_1.assert.isLength(fakedProp, total);
|
|
206
|
-
const people = await this.people.listPeople({
|
|
207
|
-
locationId: (_a = this.fakedLocations[0]) === null || _a === void 0 ? void 0 : _a.id,
|
|
208
|
-
roleBases: [(0, fake_1.pluralToSingular)(target)],
|
|
209
|
-
organizationId: (_b = this.fakedOrganizations[0]) === null || _b === void 0 ? void 0 : _b.id,
|
|
210
|
-
});
|
|
211
|
-
test_utils_1.assert.isEqualDeep(fakedProp, people);
|
|
212
|
-
}
|
|
213
|
-
static async canLoginAsPersonAndGetThemBack(phone) {
|
|
214
|
-
await this.fakeLogin();
|
|
215
|
-
const [{ challenge }] = await this.client.emitAndFlattenResponses('request-pin::v2020_12_25', {
|
|
216
|
-
payload: {
|
|
217
|
-
phone,
|
|
218
|
-
},
|
|
219
|
-
});
|
|
220
|
-
const [{ person }] = await this.client.emitAndFlattenResponses('confirm-pin::v2020_12_25', {
|
|
221
|
-
payload: {
|
|
222
|
-
challenge,
|
|
223
|
-
pin: '234',
|
|
224
|
-
},
|
|
225
|
-
});
|
|
226
|
-
test_utils_1.assert.isEqual(person.phone, (0, schema_1.formatPhoneNumber)(phone));
|
|
227
|
-
test_utils_1.assert.isEqualDeep(this.fakedPeople, [this.fakedPerson, person]);
|
|
228
|
-
}
|
|
229
|
-
static async sendingBadChallengeThrows() {
|
|
230
|
-
await this.fakeLogin();
|
|
231
|
-
const err = await test_utils_1.assert.doesThrowAsync(() => this.client.emitAndFlattenResponses('confirm-pin::v2020_12_25', {
|
|
232
|
-
payload: {
|
|
233
|
-
challenge: '1234',
|
|
234
|
-
pin: '234',
|
|
235
|
-
},
|
|
236
|
-
}));
|
|
237
|
-
test_utils_2.errorAssert.assertError(err, 'INVALID_PIN');
|
|
238
|
-
}
|
|
239
|
-
static async fakesSkillLifecycleEvents() {
|
|
240
|
-
await this.client.emitAndFlattenResponses('unregister-listeners::v2020_12_25');
|
|
241
|
-
await this.client.emitAndFlattenResponses('sync-event-contracts::v2020_12_25', {
|
|
242
|
-
payload: {
|
|
243
|
-
contract: {
|
|
244
|
-
eventSignatures: {
|
|
245
|
-
['did-sync']: {},
|
|
246
|
-
},
|
|
247
|
-
},
|
|
248
|
-
},
|
|
249
|
-
});
|
|
250
|
-
}
|
|
251
|
-
static async callingRegisterProxyTokenOnAnonClientDoesNotThrough() {
|
|
252
|
-
const client = await this.mercury.connectToApi({
|
|
253
|
-
shouldReUseClient: false,
|
|
254
|
-
});
|
|
255
|
-
await client.emitAndFlattenResponses('register-proxy-token::v2020_12_25');
|
|
256
|
-
}
|
|
257
|
-
static async fakeLoginAndListRoles(orgIdx) {
|
|
258
|
-
await this.fakeLoginAndRecords('organizations', 2);
|
|
259
|
-
const [{ roles }] = await this.client.emitAndFlattenResponses('list-roles::v2020_12_25', {
|
|
260
|
-
target: {
|
|
261
|
-
organizationId: this.fakedOrganizations[orgIdx].id,
|
|
262
|
-
},
|
|
263
|
-
payload: {
|
|
264
|
-
shouldIncludeMetaRoles: true,
|
|
265
|
-
shouldIncludePrivateRoles: true,
|
|
266
|
-
},
|
|
267
|
-
});
|
|
268
|
-
return roles;
|
|
269
|
-
}
|
|
270
|
-
static async seedAndGetNewestOrganization() {
|
|
271
|
-
await this.fakeRecords('organizations', 1);
|
|
272
|
-
return this.fakedOrganizations[0];
|
|
273
|
-
}
|
|
274
|
-
static async seedAndGetNewestLocation() {
|
|
275
|
-
await this.fakeRecords('locations', 1);
|
|
276
|
-
return this.fakedLocations[0];
|
|
277
|
-
}
|
|
278
|
-
static async emitGetOrganization(orgId) {
|
|
279
|
-
const [{ organization }] = await this.client.emitAndFlattenResponses('get-organization::v2020_12_25', {
|
|
280
|
-
target: {
|
|
281
|
-
organizationId: orgId,
|
|
282
|
-
},
|
|
283
|
-
});
|
|
284
|
-
return organization;
|
|
285
|
-
}
|
|
286
|
-
static async fakeLoginAndRecords(target, count) {
|
|
287
|
-
await this.fakeLogin();
|
|
288
|
-
await this.fakeRecords(target, count);
|
|
289
|
-
}
|
|
290
|
-
static async fakeRecords(target, count) {
|
|
291
|
-
const decorator = (0, fake_1.default)(target, count);
|
|
292
|
-
const descriptor = {
|
|
293
|
-
async value() { },
|
|
294
|
-
};
|
|
295
|
-
decorator(this, 'testName', descriptor);
|
|
296
|
-
await descriptor.value();
|
|
297
|
-
return decorator;
|
|
298
|
-
}
|
|
299
|
-
static async fakeLoginAndListOrgs(payload) {
|
|
300
|
-
await this.fakeLoginAndRecords('organizations', 5);
|
|
301
|
-
return await this.listOrganizations(payload);
|
|
302
|
-
}
|
|
303
|
-
static async listOrganizations(payload) {
|
|
304
|
-
const [{ organizations }] = await this.client.emitAndFlattenResponses('list-organizations::v2020_12_25', {
|
|
305
|
-
payload,
|
|
306
|
-
});
|
|
307
|
-
return organizations;
|
|
308
|
-
}
|
|
309
|
-
static async listRolesForPerson(personId) {
|
|
310
|
-
return await this.client.emitAndFlattenResponses('list-roles::v2020_12_25', {
|
|
311
|
-
target: {
|
|
312
|
-
personId,
|
|
313
|
-
},
|
|
314
|
-
payload: {
|
|
315
|
-
shouldIncludePrivateRoles: true,
|
|
316
|
-
},
|
|
317
|
-
});
|
|
318
|
-
}
|
|
319
|
-
static async createMultipleOrgsAndAddOwnerAdditionalTeammateRoleAtRandomOrg() {
|
|
320
|
-
const maxOrgs = (0, crypto_1.randomInt)(1, 4);
|
|
321
|
-
await this.fakeLoginAndRecords('organizations', maxOrgs);
|
|
322
|
-
const personId = this.fakedPeople[0].id;
|
|
323
|
-
const organizationId = this.fakedOrganizations[maxOrgs - 1].id;
|
|
324
|
-
return { personId, organizationId };
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
exports.default = FakeDecoratorTest;
|
|
328
|
-
__decorate([
|
|
329
|
-
(0, test_utils_1.test)()
|
|
330
|
-
], FakeDecoratorTest, "doesNotThrowWhenMissingPhone", null);
|
|
331
|
-
__decorate([
|
|
332
|
-
(0, test_utils_1.test)()
|
|
333
|
-
], FakeDecoratorTest, "throwsWhenInvalidPhone", null);
|
|
334
|
-
__decorate([
|
|
335
|
-
(0, test_utils_1.test)()
|
|
336
|
-
], FakeDecoratorTest, "fakingLoginSetsRequireLocalListeners", null);
|
|
337
|
-
__decorate([
|
|
338
|
-
(0, test_utils_1.test)()
|
|
339
|
-
], FakeDecoratorTest, "getPersonThrowsWithoutPersonId", null);
|
|
340
|
-
__decorate([
|
|
341
|
-
(0, test_utils_1.test)()
|
|
342
|
-
], FakeDecoratorTest, "fakesGetPerson", null);
|
|
343
|
-
__decorate([
|
|
344
|
-
(0, test_utils_1.test)()
|
|
345
|
-
], FakeDecoratorTest, "getPersonThrowsWithBadId", null);
|
|
346
|
-
__decorate([
|
|
347
|
-
(0, test_utils_1.test)()
|
|
348
|
-
], FakeDecoratorTest, "fakingFailWithMissingParams", null);
|
|
349
|
-
__decorate([
|
|
350
|
-
(0, test_utils_1.test)()
|
|
351
|
-
], FakeDecoratorTest, "failsWithoutOwner", null);
|
|
352
|
-
__decorate([
|
|
353
|
-
(0, test_utils_1.test)('can seed 1 org', 1),
|
|
354
|
-
(0, test_utils_1.test)('can seed 2 orgs', 2)
|
|
355
|
-
], FakeDecoratorTest, "seedsOrg", null);
|
|
356
|
-
__decorate([
|
|
357
|
-
(0, test_utils_1.test)('can get 0th org', 0),
|
|
358
|
-
(0, test_utils_1.test)('can get 1st org', 1)
|
|
359
|
-
], FakeDecoratorTest, "fakesGetOrganization", null);
|
|
360
|
-
__decorate([
|
|
361
|
-
(0, test_utils_1.test)()
|
|
362
|
-
], FakeDecoratorTest, "gettingOrgThrowsWithBadOrgId", null);
|
|
363
|
-
__decorate([
|
|
364
|
-
(0, test_utils_1.test)()
|
|
365
|
-
], FakeDecoratorTest, "fakingOrgsMoreThanOnceStacks", null);
|
|
366
|
-
__decorate([
|
|
367
|
-
(0, test_utils_1.test)()
|
|
368
|
-
], FakeDecoratorTest, "fakesListOrgsAndReturnsNewestFirst", null);
|
|
369
|
-
__decorate([
|
|
370
|
-
(0, test_utils_1.test)('honors limit 1', 1),
|
|
371
|
-
(0, test_utils_1.test)('honors limit 2', 2)
|
|
372
|
-
], FakeDecoratorTest, "listOrgsHonorsLimit", null);
|
|
373
|
-
__decorate([
|
|
374
|
-
(0, test_utils_1.test)()
|
|
375
|
-
], FakeDecoratorTest, "canGetLatestOrgWithScope", null);
|
|
376
|
-
__decorate([
|
|
377
|
-
(0, test_utils_1.test)('seeding locations seeds 1 org 1', 1),
|
|
378
|
-
(0, test_utils_1.test)('seeding locations seeds 1 org 2', 2)
|
|
379
|
-
], FakeDecoratorTest, "seedingLocationSeedsOneOrg", null);
|
|
380
|
-
__decorate([
|
|
381
|
-
(0, test_utils_1.test)('seeds expected amount of locations 1', 1),
|
|
382
|
-
(0, test_utils_1.test)('seeds expected amount of locations 2', 2)
|
|
383
|
-
], FakeDecoratorTest, "seedsGoodLocation", null);
|
|
384
|
-
__decorate([
|
|
385
|
-
(0, test_utils_1.test)()
|
|
386
|
-
], FakeDecoratorTest, "sortsLocationsNewestFirst", null);
|
|
387
|
-
__decorate([
|
|
388
|
-
(0, test_utils_1.test)()
|
|
389
|
-
], FakeDecoratorTest, "canGetLocationFromScope", null);
|
|
390
|
-
__decorate([
|
|
391
|
-
(0, test_utils_1.test)()
|
|
392
|
-
], FakeDecoratorTest, "fakingLoginsFakesRoles", null);
|
|
393
|
-
__decorate([
|
|
394
|
-
(0, test_utils_1.test)()
|
|
395
|
-
], FakeDecoratorTest, "fakingOrgFakesRoles", null);
|
|
396
|
-
__decorate([
|
|
397
|
-
(0, test_utils_1.test)()
|
|
398
|
-
], FakeDecoratorTest, "listRolesReturnsFakedRoles", null);
|
|
399
|
-
__decorate([
|
|
400
|
-
(0, test_utils_1.test)()
|
|
401
|
-
], FakeDecoratorTest, "listRolesHonorsOrgId", null);
|
|
402
|
-
__decorate([
|
|
403
|
-
(0, test_utils_1.test)()
|
|
404
|
-
], FakeDecoratorTest, "listRolesForPersonWithoutTargetingOrgReturnsAllRolesForPerson", null);
|
|
405
|
-
__decorate([
|
|
406
|
-
(0, test_utils_1.test)('can fake 1 teammate', 'teammates', 1),
|
|
407
|
-
(0, test_utils_1.test)('can fake 2 teammate', 'teammates', 2)
|
|
408
|
-
], FakeDecoratorTest, "canSyncTeammates", null);
|
|
409
|
-
__decorate([
|
|
410
|
-
(0, test_utils_1.test)('login with number 1', constants_1.DEMO_NUMBER_DECORATORS),
|
|
411
|
-
(0, test_utils_1.test)('login with number 2', constants_1.DEMO_NUMBER_ACCOUNT_AFTER_ALL_RESET)
|
|
412
|
-
], FakeDecoratorTest, "canLoginAsPersonAndGetThemBack", null);
|
|
413
|
-
__decorate([
|
|
414
|
-
(0, test_utils_1.test)()
|
|
415
|
-
], FakeDecoratorTest, "sendingBadChallengeThrows", null);
|
|
416
|
-
__decorate([
|
|
417
|
-
(0, test_utils_1.test)()
|
|
418
|
-
], FakeDecoratorTest, "fakesSkillLifecycleEvents", null);
|
|
419
|
-
__decorate([
|
|
420
|
-
(0, test_utils_1.test)()
|
|
421
|
-
], FakeDecoratorTest, "callingRegisterProxyTokenOnAnonClientDoesNotThrough", null);
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
13
|
-
const AbstractFakeDecoratorTest_1 = __importDefault(require("../../support/AbstractFakeDecoratorTest"));
|
|
14
|
-
class FakeDecoratorTest extends AbstractFakeDecoratorTest_1.default {
|
|
15
|
-
static async setsPersonToClass() {
|
|
16
|
-
const auth = await this.fakeLoginAndGetAuth();
|
|
17
|
-
test_utils_1.assert.isEqualDeep(this.fakedPerson, auth.person);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
exports.default = FakeDecoratorTest;
|
|
21
|
-
__decorate([
|
|
22
|
-
(0, test_utils_1.test)()
|
|
23
|
-
], FakeDecoratorTest, "setsPersonToClass", null);
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
13
|
-
const constants_1 = require("../../../tests/constants");
|
|
14
|
-
const AbstractFakeDecoratorTest_1 = __importDefault(require("../../support/AbstractFakeDecoratorTest"));
|
|
15
|
-
class FakeDecoratorTest extends AbstractFakeDecoratorTest_1.default {
|
|
16
|
-
static async fakesWhoAmI() {
|
|
17
|
-
const number = constants_1.DEMO_NUMBER_HIRING;
|
|
18
|
-
const auth = await this.fakeLoginAndGetAuth(number);
|
|
19
|
-
test_utils_1.assert.doesInclude(auth.person, {
|
|
20
|
-
phone: number,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.default = FakeDecoratorTest;
|
|
25
|
-
__decorate([
|
|
26
|
-
(0, test_utils_1.test)()
|
|
27
|
-
], FakeDecoratorTest, "fakesWhoAmI", null);
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import AbstractSpruceTest from '@sprucelabs/test-utils';
|
|
2
|
-
export default class FakeThemeManagerTest extends AbstractSpruceTest {
|
|
3
|
-
private static manager;
|
|
4
|
-
protected static beforeEach(): Promise<void>;
|
|
5
|
-
protected static comesWithThemeByDefault(): Promise<void>;
|
|
6
|
-
protected static canSetTheme(): Promise<void>;
|
|
7
|
-
private static assertThemeEquals;
|
|
8
|
-
}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
-
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
-
if (mod && mod.__esModule) return mod;
|
|
26
|
-
var result = {};
|
|
27
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
-
__setModuleDefault(result, mod);
|
|
29
|
-
return result;
|
|
30
|
-
};
|
|
31
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
32
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
33
|
-
};
|
|
34
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
const test_utils_1 = __importStar(require("@sprucelabs/test-utils"));
|
|
36
|
-
const test_utils_2 = require("@sprucelabs/test-utils");
|
|
37
|
-
const FakeThemeManager_1 = __importDefault(require("../../support/FakeThemeManager"));
|
|
38
|
-
class FakeThemeManagerTest extends test_utils_1.default {
|
|
39
|
-
static async beforeEach() {
|
|
40
|
-
await super.beforeEach();
|
|
41
|
-
this.manager = new FakeThemeManager_1.default();
|
|
42
|
-
}
|
|
43
|
-
static async comesWithThemeByDefault() {
|
|
44
|
-
this.assertThemeEquals({
|
|
45
|
-
name: 'Heartwood',
|
|
46
|
-
props: {
|
|
47
|
-
color1: '#ffffff',
|
|
48
|
-
color1Inverse: '#0f4c8a',
|
|
49
|
-
color1InverseGradient: 'linear-gradient(to left, #24c6dc, #514a9d)',
|
|
50
|
-
color2: '#757575',
|
|
51
|
-
color2Transparent: 'rgba(0,0,0,0.2)',
|
|
52
|
-
color2Inverse: 'white',
|
|
53
|
-
color2InverseTransparent: 'rgba(255,255,255,0.9)',
|
|
54
|
-
color3: '#303030',
|
|
55
|
-
color3Inverse: 'transparent',
|
|
56
|
-
color3Compliment: '#a7a7a7',
|
|
57
|
-
color4: '#626262',
|
|
58
|
-
color4Compliment: 'white',
|
|
59
|
-
color4ComplimentTransparent: 'rgba(0,0,0,0.1)',
|
|
60
|
-
color4Inverse: 'white',
|
|
61
|
-
color4InverseCompliment: '#c7c7c7',
|
|
62
|
-
controlBarColor1: 'black',
|
|
63
|
-
controlBarColor2: 'white',
|
|
64
|
-
toolBeltColor2: '#f1f1f1',
|
|
65
|
-
errorColor1: '#fff',
|
|
66
|
-
errorColor1Inverse: '#FF3326',
|
|
67
|
-
warningColor1: '#A16B14',
|
|
68
|
-
warningColor1Inverse: '#F7D352',
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
static async canSetTheme() {
|
|
73
|
-
const set = {
|
|
74
|
-
name: (0, test_utils_2.generateId)(),
|
|
75
|
-
props: {
|
|
76
|
-
//@ts-ignore
|
|
77
|
-
[test_utils_2.generateId]: (0, test_utils_2.generateId)(),
|
|
78
|
-
},
|
|
79
|
-
};
|
|
80
|
-
this.manager.setTheme(set);
|
|
81
|
-
this.assertThemeEquals(set);
|
|
82
|
-
}
|
|
83
|
-
static assertThemeEquals(expected) {
|
|
84
|
-
test_utils_1.assert.isEqualDeep(this.manager.getTheme(), expected);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
exports.default = FakeThemeManagerTest;
|
|
88
|
-
__decorate([
|
|
89
|
-
(0, test_utils_1.test)()
|
|
90
|
-
], FakeThemeManagerTest, "comesWithThemeByDefault", null);
|
|
91
|
-
__decorate([
|
|
92
|
-
(0, test_utils_1.test)()
|
|
93
|
-
], FakeThemeManagerTest, "canSetTheme", null);
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import AbstractSpruceFixtureTest from '../../../tests/AbstractSpruceFixtureTest';
|
|
2
|
-
export default class FakingAddingPeopleToALocationTest extends AbstractSpruceFixtureTest {
|
|
3
|
-
protected static noRolesAtLocationToStart(): Promise<void>;
|
|
4
|
-
protected static differenciatesBetweenOrgAndLocation(): Promise<void>;
|
|
5
|
-
protected static passesWhenFakedOwnerIsPartOfLocation(): Promise<void>;
|
|
6
|
-
private static assertIsNotPartOfLocation;
|
|
7
|
-
private static isPartOfLocation;
|
|
8
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
13
|
-
const AbstractSpruceFixtureTest_1 = __importDefault(require("../../../tests/AbstractSpruceFixtureTest"));
|
|
14
|
-
const fake_1 = __importDefault(require("../../../tests/decorators/fake"));
|
|
15
|
-
const seed_1 = __importDefault(require("../../../tests/decorators/seed"));
|
|
16
|
-
let FakingAddingPeopleToALocationTest = class FakingAddingPeopleToALocationTest extends AbstractSpruceFixtureTest_1.default {
|
|
17
|
-
static async noRolesAtLocationToStart() {
|
|
18
|
-
const { person } = await this.people.loginAsDemoPerson('555-555-1234');
|
|
19
|
-
await this.assertIsNotPartOfLocation(person.id);
|
|
20
|
-
}
|
|
21
|
-
static async differenciatesBetweenOrgAndLocation() {
|
|
22
|
-
await this.assertIsNotPartOfLocation(this.fakedTeammates[0].id);
|
|
23
|
-
}
|
|
24
|
-
static async passesWhenFakedOwnerIsPartOfLocation() {
|
|
25
|
-
const is = await this.isPartOfLocation(this.fakedPerson.id);
|
|
26
|
-
test_utils_1.assert.isTrue(is);
|
|
27
|
-
}
|
|
28
|
-
static async assertIsNotPartOfLocation(personId) {
|
|
29
|
-
const is = await this.isPartOfLocation(personId);
|
|
30
|
-
test_utils_1.assert.isFalse(is);
|
|
31
|
-
}
|
|
32
|
-
static async isPartOfLocation(personId) {
|
|
33
|
-
return await this.locations.isPartOfLocation({
|
|
34
|
-
personId,
|
|
35
|
-
locationId: this.fakedLocations[0].id,
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
__decorate([
|
|
40
|
-
(0, test_utils_1.test)(),
|
|
41
|
-
(0, seed_1.default)('locations', 1)
|
|
42
|
-
], FakingAddingPeopleToALocationTest, "noRolesAtLocationToStart", null);
|
|
43
|
-
__decorate([
|
|
44
|
-
(0, test_utils_1.test)(),
|
|
45
|
-
(0, seed_1.default)('organizations', 1),
|
|
46
|
-
(0, seed_1.default)('teammates', 1),
|
|
47
|
-
(0, seed_1.default)('locations', 1)
|
|
48
|
-
], FakingAddingPeopleToALocationTest, "differenciatesBetweenOrgAndLocation", null);
|
|
49
|
-
__decorate([
|
|
50
|
-
(0, test_utils_1.test)(),
|
|
51
|
-
(0, seed_1.default)('locations', 1)
|
|
52
|
-
], FakingAddingPeopleToALocationTest, "passesWhenFakedOwnerIsPartOfLocation", null);
|
|
53
|
-
FakingAddingPeopleToALocationTest = __decorate([
|
|
54
|
-
fake_1.default.login()
|
|
55
|
-
], FakingAddingPeopleToALocationTest);
|
|
56
|
-
exports.default = FakingAddingPeopleToALocationTest;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import AbstractSpruceFixtureTest from '../../../tests/AbstractSpruceFixtureTest';
|
|
2
|
-
export default class FakingAddingPeopleToAnOrgTest extends AbstractSpruceFixtureTest {
|
|
3
|
-
protected static canCreateFakingAddingPeopleToAnOrg(): Promise<void>;
|
|
4
|
-
protected static seedsDifferentTeammates(): Promise<void>;
|
|
5
|
-
protected static seedsDifferentGuests(): Promise<void>;
|
|
6
|
-
protected static seedsDifferentManager(): Promise<void>;
|
|
7
|
-
protected static seedsDifferentGroupManager(): Promise<void>;
|
|
8
|
-
protected static seedsDifferentOwners(): Promise<void>;
|
|
9
|
-
protected static seedsDifferentTeammatesThenGuests(): Promise<void>;
|
|
10
|
-
protected static listingRolesHonorsOrgId(): Promise<void>;
|
|
11
|
-
protected static removesRoleFromProperOrg(): Promise<void>;
|
|
12
|
-
private static assertTotalRolesReturned;
|
|
13
|
-
private static assertSeededPeopleAreDifferent;
|
|
14
|
-
}
|