refactor(test-utils): rename ServiceFactoryTester.get to ServiceFactoryTestest.getSubject
Signed-off-by: Camila Belo <camilaibs@gmail.com>
This commit is contained in:
@@ -373,6 +373,7 @@ export class ServiceFactoryTester<TService, TScope extends 'root' | 'plugin'> {
|
||||
| (() => ServiceFactory<TService, TScope>),
|
||||
options?: ServiceFactoryTesterOptions,
|
||||
): ServiceFactoryTester<TService, TScope>;
|
||||
// @deprecated
|
||||
get(
|
||||
...args: 'root' extends TScope ? [] : [pluginId?: string]
|
||||
): Promise<TService>;
|
||||
@@ -380,6 +381,9 @@ export class ServiceFactoryTester<TService, TScope extends 'root' | 'plugin'> {
|
||||
service: ServiceRef<TGetService, TGetScope>,
|
||||
...args: 'root' extends TGetScope ? [] : [pluginId?: string]
|
||||
): Promise<TGetService>;
|
||||
getSubject(
|
||||
...args: 'root' extends TScope ? [] : [pluginId?: string]
|
||||
): Promise<TService>;
|
||||
}
|
||||
|
||||
// @public
|
||||
|
||||
@@ -56,34 +56,34 @@ describe('ServiceFactoryTester', () => {
|
||||
it('should test a root service factory', async () => {
|
||||
const tester = ServiceFactoryTester.from(rootFactory);
|
||||
|
||||
await expect(tester.get()).resolves.toBe('root');
|
||||
await expect(tester.getSubject()).resolves.toBe('root');
|
||||
});
|
||||
|
||||
it('should test a plugin service factory', async () => {
|
||||
const tester = ServiceFactoryTester.from(pluginFactory);
|
||||
|
||||
await expect(tester.get('x')).resolves.toBe('x-plugin');
|
||||
await expect(tester.get('y')).resolves.toBe('y-plugin');
|
||||
await expect(tester.get('z')).resolves.toBe('z-plugin');
|
||||
await expect(tester.getSubject('x')).resolves.toBe('x-plugin');
|
||||
await expect(tester.getSubject('y')).resolves.toBe('y-plugin');
|
||||
await expect(tester.getSubject('z')).resolves.toBe('z-plugin');
|
||||
});
|
||||
|
||||
it('should test a plugin service factory with root context', async () => {
|
||||
const tester = ServiceFactoryTester.from(sharedPluginFactory);
|
||||
|
||||
await expect(tester.get('x')).resolves.toBe('x-1-plugin');
|
||||
await expect(tester.get('y')).resolves.toBe('y-2-plugin');
|
||||
await expect(tester.get('y')).resolves.toBe('y-2-plugin');
|
||||
await expect(tester.get('y')).resolves.toBe('y-2-plugin');
|
||||
await expect(tester.get('z')).resolves.toBe('z-3-plugin');
|
||||
await expect(tester.getSubject('x')).resolves.toBe('x-1-plugin');
|
||||
await expect(tester.getSubject('y')).resolves.toBe('y-2-plugin');
|
||||
await expect(tester.getSubject('y')).resolves.toBe('y-2-plugin');
|
||||
await expect(tester.getSubject('y')).resolves.toBe('y-2-plugin');
|
||||
await expect(tester.getSubject('z')).resolves.toBe('z-3-plugin');
|
||||
|
||||
const tester2 = ServiceFactoryTester.from(sharedPluginFactory);
|
||||
|
||||
await expect(tester2.get('z')).resolves.toBe('z-1-plugin');
|
||||
await expect(tester2.get('y')).resolves.toBe('y-2-plugin');
|
||||
await expect(tester2.get('x')).resolves.toBe('x-3-plugin');
|
||||
await expect(tester2.get('x')).resolves.toBe('x-3-plugin');
|
||||
await expect(tester2.get('y')).resolves.toBe('y-2-plugin');
|
||||
await expect(tester2.get('z')).resolves.toBe('z-1-plugin');
|
||||
await expect(tester2.getSubject('z')).resolves.toBe('z-1-plugin');
|
||||
await expect(tester2.getSubject('y')).resolves.toBe('y-2-plugin');
|
||||
await expect(tester2.getSubject('x')).resolves.toBe('x-3-plugin');
|
||||
await expect(tester2.getSubject('x')).resolves.toBe('x-3-plugin');
|
||||
await expect(tester2.getSubject('y')).resolves.toBe('y-2-plugin');
|
||||
await expect(tester2.getSubject('z')).resolves.toBe('z-1-plugin');
|
||||
});
|
||||
|
||||
it('should use dependencies', async () => {
|
||||
@@ -96,7 +96,7 @@ describe('ServiceFactoryTester', () => {
|
||||
{ dependencies: [rootFactory, pluginFactory()] },
|
||||
);
|
||||
|
||||
await expect(tester.get('x')).resolves.toBe('root, x-plugin');
|
||||
await expect(tester.getSubject('x')).resolves.toBe('root, x-plugin');
|
||||
});
|
||||
|
||||
it('should use dependencies with root context', async () => {
|
||||
@@ -109,11 +109,11 @@ describe('ServiceFactoryTester', () => {
|
||||
{ dependencies: [sharedPluginFactory(), pluginFactory] },
|
||||
);
|
||||
|
||||
await expect(tester.get('x')).resolves.toBe('x-1-plugin, x-plugin');
|
||||
await expect(tester.get('y')).resolves.toBe('y-2-plugin, y-plugin');
|
||||
await expect(tester.get('y')).resolves.toBe('y-2-plugin, y-plugin');
|
||||
await expect(tester.get('y')).resolves.toBe('y-2-plugin, y-plugin');
|
||||
await expect(tester.get('z')).resolves.toBe('z-3-plugin, z-plugin');
|
||||
await expect(tester.getSubject('x')).resolves.toBe('x-1-plugin, x-plugin');
|
||||
await expect(tester.getSubject('y')).resolves.toBe('y-2-plugin, y-plugin');
|
||||
await expect(tester.getSubject('y')).resolves.toBe('y-2-plugin, y-plugin');
|
||||
await expect(tester.getSubject('y')).resolves.toBe('y-2-plugin, y-plugin');
|
||||
await expect(tester.getSubject('z')).resolves.toBe('z-3-plugin, z-plugin');
|
||||
});
|
||||
|
||||
it('should prioritize the subject implementation', async () => {
|
||||
@@ -126,7 +126,7 @@ describe('ServiceFactoryTester', () => {
|
||||
{ dependencies: [rootFactory] },
|
||||
);
|
||||
|
||||
await expect(tester.get()).resolves.toBe('other-root');
|
||||
await expect(tester.getSubject()).resolves.toBe('other-root');
|
||||
});
|
||||
|
||||
it('should throw on missing dependencies', async () => {
|
||||
@@ -138,7 +138,7 @@ describe('ServiceFactoryTester', () => {
|
||||
}),
|
||||
);
|
||||
|
||||
await expect(tester.get('x')).rejects.toThrow(
|
||||
await expect(tester.getSubject('x')).rejects.toThrow(
|
||||
"Failed to instantiate service 'b' for 'x' because the following dependent services are missing: 'a'",
|
||||
);
|
||||
});
|
||||
|
||||
@@ -79,6 +79,17 @@ export class ServiceFactoryTester<TService, TScope extends 'root' | 'plugin'> {
|
||||
this.#registry = registry;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the service instance for the subject.
|
||||
*
|
||||
* @deprecated Use `getSubject` instead.
|
||||
*/
|
||||
async get(
|
||||
...args: 'root' extends TScope ? [] : [pluginId?: string]
|
||||
): Promise<TService> {
|
||||
return this.getSubject(...args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the service instance for the subject.
|
||||
*
|
||||
@@ -89,7 +100,7 @@ export class ServiceFactoryTester<TService, TScope extends 'root' | 'plugin'> {
|
||||
*
|
||||
* By default the plugin ID 'test' is used.
|
||||
*/
|
||||
async get(
|
||||
async getSubject(
|
||||
...args: 'root' extends TScope ? [] : [pluginId?: string]
|
||||
): Promise<TService> {
|
||||
const [pluginId] = args;
|
||||
|
||||
Reference in New Issue
Block a user