Skip to content

Commit

Permalink
Introduce start lifecycle event to client (#35269)
Browse files Browse the repository at this point in the history
  • Loading branch information
joshdover authored Apr 23, 2019
1 parent 9947045 commit c2f4123
Show file tree
Hide file tree
Showing 104 changed files with 1,244 additions and 628 deletions.
16 changes: 8 additions & 8 deletions src/core/public/capabilities/capabilities_service.mock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,30 +16,30 @@
* specific language governing permissions and limitations
* under the License.
*/
import { Capabilities, CapabilitiesService, CapabilitiesSetup } from './capabilities_service';
import { Capabilities, CapabilitiesService, CapabilitiesStart } from './capabilities_service';

const createSetupContractMock = () => {
const setupContract: jest.Mocked<CapabilitiesSetup> = {
const createStartContractMock = () => {
const startContract: jest.Mocked<CapabilitiesStart> = {
getCapabilities: jest.fn(),
};
setupContract.getCapabilities.mockReturnValue({
startContract.getCapabilities.mockReturnValue({
catalogue: {},
management: {},
navLinks: {},
} as Capabilities);
return setupContract;
return startContract;
};

type CapabilitiesServiceContract = PublicMethodsOf<CapabilitiesService>;
const createMock = () => {
const mocked: jest.Mocked<CapabilitiesServiceContract> = {
setup: jest.fn(),
start: jest.fn(),
};
mocked.setup.mockReturnValue(createSetupContractMock());
mocked.start.mockReturnValue(createStartContractMock());
return mocked;
};

export const capabilitiesServiceMock = {
create: createMock,
createSetupContract: createSetupContractMock,
createStartContract: createStartContractMock,
};
4 changes: 2 additions & 2 deletions src/core/public/capabilities/capabilities_service.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ describe('#start', () => {
} as any,
});
const service = new CapabilitiesService();
const startContract = service.setup({ injectedMetadata: injectedMetadata.setup() });
const startContract = service.start({ injectedMetadata: injectedMetadata.start() });
expect(startContract.getCapabilities()).toEqual({
foo: 'bar',
bar: 'baz',
Expand All @@ -51,7 +51,7 @@ describe('#start', () => {
} as any,
});
const service = new CapabilitiesService();
const startContract = service.setup({ injectedMetadata: injectedMetadata.setup() });
const startContract = service.start({ injectedMetadata: injectedMetadata.start() });
const capabilities = startContract.getCapabilities();

// @ts-ignore TypeScript knows this shouldn't be possible
Expand Down
10 changes: 5 additions & 5 deletions src/core/public/capabilities/capabilities_service.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
* specific language governing permissions and limitations
* under the License.
*/
import { InjectedMetadataSetup } from '../injected_metadata';
import { InjectedMetadataStart } from '../injected_metadata';
import { deepFreeze } from '../utils/deep_freeze';

interface StartDeps {
injectedMetadata: InjectedMetadataSetup;
injectedMetadata: InjectedMetadataStart;
}

/**
Expand Down Expand Up @@ -50,7 +50,7 @@ export interface Capabilities {
* Capabilities Setup.
* @public
*/
export interface CapabilitiesSetup {
export interface CapabilitiesStart {
/**
* Gets the read-only capabilities.
*/
Expand All @@ -63,10 +63,10 @@ export interface CapabilitiesSetup {
* Service that is responsible for UI Capabilities.
*/
export class CapabilitiesService {
public setup({ injectedMetadata }: StartDeps): CapabilitiesSetup {
public start({ injectedMetadata }: StartDeps): CapabilitiesStart {
return {
getCapabilities: () =>
deepFreeze<Capabilities>(injectedMetadata.getInjectedVar('uiCapabilities') as Capabilities),
deepFreeze(injectedMetadata.getInjectedVar('uiCapabilities') as Capabilities),
};
}
}
2 changes: 1 addition & 1 deletion src/core/public/capabilities/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@
* under the License.
*/

export { Capabilities, CapabilitiesService, CapabilitiesSetup } from './capabilities_service';
export { Capabilities, CapabilitiesService, CapabilitiesStart } from './capabilities_service';
9 changes: 9 additions & 0 deletions src/core/public/core_system.test.mocks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
*/

import { basePathServiceMock } from './base_path/base_path_service.mock';
import { capabilitiesServiceMock } from './capabilities/capabilities_service.mock';
import { chromeServiceMock } from './chrome/chrome_service.mock';
import { fatalErrorsServiceMock } from './fatal_errors/fatal_errors_service.mock';
import { httpServiceMock } from './http/http_service.mock';
Expand Down Expand Up @@ -104,3 +105,11 @@ export const PluginsServiceConstructor = jest.fn().mockImplementation(() => Mock
jest.doMock('./plugins', () => ({
PluginsService: PluginsServiceConstructor,
}));

export const MockCapabilitiesService = capabilitiesServiceMock.create();
export const CapabilitiesServiceConstructor = jest
.fn()
.mockImplementation(() => MockCapabilitiesService);
jest.doMock('./capabilities', () => ({
CapabilitiesService: CapabilitiesServiceConstructor,
}));
Loading

0 comments on commit c2f4123

Please sign in to comment.