refactor(plugins/home): Simplify VisitsApi method names
Signed-off-by: Renan Mendes Carvalho <aitherios@gmail.com>
This commit is contained in:
committed by
Camila Belo
parent
c30e715a2b
commit
6c93a6799e
@@ -262,8 +262,8 @@ export const VisitListener: ({
|
||||
|
||||
// @public
|
||||
export interface VisitsApi {
|
||||
listVisits(queryParams?: VisitsApiQueryParams): Promise<Visit[]>;
|
||||
saveVisit(saveParams: VisitsApiSaveParams): Promise<Visit>;
|
||||
list(queryParams?: VisitsApiQueryParams): Promise<Visit[]>;
|
||||
save(saveParams: VisitsApiSaveParams): Promise<Visit>;
|
||||
}
|
||||
|
||||
// @public
|
||||
@@ -277,7 +277,7 @@ export class VisitsApiFactory implements VisitsApi {
|
||||
// (undocumented)
|
||||
protected readonly limit: number;
|
||||
// (undocumented)
|
||||
listVisits(queryParams?: VisitsApiQueryParams): Promise<Visit[]>;
|
||||
list(queryParams?: VisitsApiQueryParams): Promise<Visit[]>;
|
||||
// (undocumented)
|
||||
protected persistAll: (visits: Array<Visit>) => Promise<void>;
|
||||
// (undocumented)
|
||||
@@ -285,7 +285,7 @@ export class VisitsApiFactory implements VisitsApi {
|
||||
// (undocumented)
|
||||
protected retrieveAll: () => Promise<Array<Visit>>;
|
||||
// (undocumented)
|
||||
saveVisit(saveParams: VisitsApiSaveParams): Promise<Visit>;
|
||||
save(saveParams: VisitsApiSaveParams): Promise<Visit>;
|
||||
}
|
||||
|
||||
// @public (undocumented)
|
||||
|
||||
@@ -59,7 +59,7 @@ describe('CoreStorageVisitsApi.create({ storageApi: MockStorageApi.create() })',
|
||||
entityRef: 'component:default/playback-order',
|
||||
name: 'Playback Order',
|
||||
};
|
||||
const returnedVisit = await api.saveVisit({ visit });
|
||||
const returnedVisit = await api.save({ visit });
|
||||
expect(returnedVisit).toEqual(expect.objectContaining(visit));
|
||||
expect(returnedVisit.id).toBeTruthy();
|
||||
expect(returnedVisit.timestamp).toBeTruthy();
|
||||
@@ -76,8 +76,8 @@ describe('CoreStorageVisitsApi.create({ storageApi: MockStorageApi.create() })',
|
||||
entityRef: 'component:default/playback-order',
|
||||
name: 'Playback Order',
|
||||
};
|
||||
const returnedVisit = await api.saveVisit({ visit });
|
||||
const visits = await api.listVisits();
|
||||
const returnedVisit = await api.save({ visit });
|
||||
const visits = await api.list();
|
||||
expect(visits).toHaveLength(1);
|
||||
expect(visits).toEqual([expect.objectContaining(visit)]);
|
||||
expect(visits).toEqual([returnedVisit]);
|
||||
|
||||
@@ -53,7 +53,7 @@ describe('LocalStorageVisitsApi.create()', () => {
|
||||
entityRef: 'component:default/playback-order',
|
||||
name: 'Playback Order',
|
||||
};
|
||||
const returnedVisit = await api.saveVisit({ visit });
|
||||
const returnedVisit = await api.save({ visit });
|
||||
expect(returnedVisit).toEqual(expect.objectContaining(visit));
|
||||
expect(returnedVisit.id).toBeTruthy();
|
||||
expect(returnedVisit.timestamp).toBeTruthy();
|
||||
@@ -67,8 +67,8 @@ describe('LocalStorageVisitsApi.create()', () => {
|
||||
entityRef: 'component:default/playback-order',
|
||||
name: 'Playback Order',
|
||||
};
|
||||
const returnedVisit = await api.saveVisit({ visit });
|
||||
const visits = await api.listVisits();
|
||||
const returnedVisit = await api.save({ visit });
|
||||
const visits = await api.list();
|
||||
expect(visits).toHaveLength(1);
|
||||
expect(visits).toEqual([expect.objectContaining(visit)]);
|
||||
expect(visits).toEqual([returnedVisit]);
|
||||
|
||||
@@ -106,12 +106,12 @@ export interface VisitsApi {
|
||||
* Persist a new visit.
|
||||
* @param pageVisit - a new visit data
|
||||
*/
|
||||
saveVisit(saveParams: VisitsApiSaveParams): Promise<Visit>;
|
||||
save(saveParams: VisitsApiSaveParams): Promise<Visit>;
|
||||
/**
|
||||
* Get user visits.
|
||||
* @param queryParams - optional search query params.
|
||||
*/
|
||||
listVisits(queryParams?: VisitsApiQueryParams): Promise<Visit[]>;
|
||||
list(queryParams?: VisitsApiQueryParams): Promise<Visit[]>;
|
||||
}
|
||||
|
||||
/** @public */
|
||||
|
||||
@@ -66,7 +66,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
expect(api).toBeTruthy();
|
||||
});
|
||||
|
||||
describe('.saveVisit()', () => {
|
||||
describe('.save()', () => {
|
||||
it('saves a visit', async () => {
|
||||
const api = new MemoryVisitsApi();
|
||||
const visit = {
|
||||
@@ -74,7 +74,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
entityRef: 'component:default/playback-order',
|
||||
name: 'Playback Order',
|
||||
};
|
||||
const returnedVisit = await api.saveVisit({ visit });
|
||||
const returnedVisit = await api.save({ visit });
|
||||
expect(returnedVisit).toEqual(expect.objectContaining(visit));
|
||||
expect(returnedVisit.id).toBeTruthy();
|
||||
expect(returnedVisit.timestamp).toBeTruthy();
|
||||
@@ -90,22 +90,22 @@ describe('new MemoryVisitsApi()', () => {
|
||||
name: 'Playback Order',
|
||||
};
|
||||
jest.setSystemTime(baseDate);
|
||||
await api.saveVisit({ visit: visit1 });
|
||||
await api.save({ visit: visit1 });
|
||||
const visit2 = {
|
||||
pathname: '/catalog/default/component/playback-order-2',
|
||||
entityRef: 'component:default/playback-order',
|
||||
name: 'Playback Order',
|
||||
};
|
||||
jest.setSystemTime(baseDate + 360_000);
|
||||
await api.saveVisit({ visit: visit2 });
|
||||
await api.save({ visit: visit2 });
|
||||
const visit3 = {
|
||||
pathname: '/catalog/default/component/playback-order-3',
|
||||
entityRef: 'component:default/playback-order',
|
||||
name: 'Playback Order',
|
||||
};
|
||||
jest.setSystemTime(baseDate + 360_000 * 2);
|
||||
await api.saveVisit({ visit: visit3 });
|
||||
const visits = await api.listVisits();
|
||||
await api.save({ visit: visit3 });
|
||||
const visits = await api.list();
|
||||
expect(visits).toHaveLength(2);
|
||||
expect(visits).toContainEqual(expect.objectContaining(visit2));
|
||||
expect(visits).toContainEqual(expect.objectContaining(visit3));
|
||||
@@ -118,9 +118,9 @@ describe('new MemoryVisitsApi()', () => {
|
||||
entityRef: 'component:default/playback-order',
|
||||
name: 'Playback Order',
|
||||
};
|
||||
const visit1 = await api.saveVisit({ visit });
|
||||
const visit2 = await api.saveVisit({ visit });
|
||||
const visits = await api.listVisits();
|
||||
const visit1 = await api.save({ visit });
|
||||
const visit2 = await api.save({ visit });
|
||||
const visits = await api.list();
|
||||
expect(visits).toHaveLength(1);
|
||||
expect(visits).toContainEqual(expect.objectContaining(visit));
|
||||
// keeps the original id created on the first visit
|
||||
@@ -132,7 +132,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('.listVisits()', () => {
|
||||
describe('.list()', () => {
|
||||
let api: MemoryVisitsApi;
|
||||
let visitsToSave: Array<Omit<Visit, 'id' | 'hits' | 'timestamp'>>;
|
||||
let baseDate: number;
|
||||
@@ -161,14 +161,14 @@ describe('new MemoryVisitsApi()', () => {
|
||||
(acc, visit, index) =>
|
||||
acc.then(() => {
|
||||
jest.setSystemTime(baseDate + 360_000 * index);
|
||||
return api.saveVisit({ visit });
|
||||
return api.save({ visit });
|
||||
}),
|
||||
Promise.resolve({}),
|
||||
);
|
||||
});
|
||||
|
||||
it('retrieves visits', async () => {
|
||||
const visits = await api.listVisits();
|
||||
const visits = await api.list();
|
||||
expect(visits).toHaveLength(3);
|
||||
expect(visits).toEqual([
|
||||
expect.objectContaining(visitsToSave[2]),
|
||||
@@ -178,7 +178,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
|
||||
it('orders by timestamp asc', async () => {
|
||||
const visits = await api.listVisits({
|
||||
const visits = await api.list({
|
||||
orderBy: [{ field: 'timestamp', direction: 'asc' }],
|
||||
});
|
||||
expect(visits).toEqual([
|
||||
@@ -189,7 +189,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
|
||||
it('orders by timestamp desc', async () => {
|
||||
const visits = await api.listVisits({
|
||||
const visits = await api.list({
|
||||
orderBy: [{ field: 'timestamp', direction: 'desc' }],
|
||||
});
|
||||
expect(visits).toEqual([
|
||||
@@ -200,7 +200,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
|
||||
it('orders by entityRef asc', async () => {
|
||||
const visits = await api.listVisits({
|
||||
const visits = await api.list({
|
||||
orderBy: [{ field: 'entityRef', direction: 'asc' }],
|
||||
});
|
||||
expect(visits).toEqual([
|
||||
@@ -211,7 +211,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
|
||||
it('orders by entityRef desc', async () => {
|
||||
const visits = await api.listVisits({
|
||||
const visits = await api.list({
|
||||
orderBy: [{ field: 'entityRef', direction: 'desc' }],
|
||||
});
|
||||
expect(visits).toEqual([
|
||||
@@ -222,7 +222,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
|
||||
it('orders by name asc then by entityRef asc', async () => {
|
||||
const visits = await api.listVisits({
|
||||
const visits = await api.list({
|
||||
orderBy: [
|
||||
{ field: 'name', direction: 'asc' },
|
||||
{ field: 'entityRef', direction: 'asc' },
|
||||
@@ -236,7 +236,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
|
||||
it('orders by name desc then by entityRef asc', async () => {
|
||||
const visits = await api.listVisits({
|
||||
const visits = await api.list({
|
||||
orderBy: [
|
||||
{ field: 'name', direction: 'desc' },
|
||||
{ field: 'entityRef', direction: 'asc' },
|
||||
@@ -250,7 +250,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
|
||||
it('filters by timestamp with >', async () => {
|
||||
const visits = await api.listVisits({
|
||||
const visits = await api.list({
|
||||
filterBy: [{ field: 'timestamp', operator: '>', value: baseDate }],
|
||||
});
|
||||
expect(visits).toHaveLength(2);
|
||||
@@ -261,7 +261,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
|
||||
it('filters by timestamp with >=', async () => {
|
||||
const visits = await api.listVisits({
|
||||
const visits = await api.list({
|
||||
filterBy: [
|
||||
{ field: 'timestamp', operator: '>=', value: baseDate + 360_000 * 2 },
|
||||
],
|
||||
@@ -271,7 +271,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
|
||||
it('filters by timestamp with <', async () => {
|
||||
const visits = await api.listVisits({
|
||||
const visits = await api.list({
|
||||
filterBy: [{ field: 'timestamp', operator: '<', value: baseDate + 1 }],
|
||||
});
|
||||
expect(visits).toHaveLength(1);
|
||||
@@ -279,7 +279,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
|
||||
it('filters by timestamp with <=', async () => {
|
||||
const visits = await api.listVisits({
|
||||
const visits = await api.list({
|
||||
filterBy: [
|
||||
{ field: 'timestamp', operator: '<=', value: baseDate + 360_000 },
|
||||
],
|
||||
@@ -292,7 +292,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
|
||||
it('filters by timestamp with ==', async () => {
|
||||
const visits = await api.listVisits({
|
||||
const visits = await api.list({
|
||||
filterBy: [
|
||||
{ field: 'timestamp', operator: '==', value: baseDate + 360_000 },
|
||||
],
|
||||
@@ -302,7 +302,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
|
||||
it('filters by entityRef with contains', async () => {
|
||||
const visits = await api.listVisits({
|
||||
const visits = await api.list({
|
||||
filterBy: [
|
||||
{ field: 'entityRef', operator: 'contains', value: 'order-2' },
|
||||
],
|
||||
@@ -312,7 +312,7 @@ describe('new MemoryVisitsApi()', () => {
|
||||
});
|
||||
|
||||
it('filters by timestamp with <= then by name with contains', async () => {
|
||||
const visits = await api.listVisits({
|
||||
const visits = await api.list({
|
||||
filterBy: [
|
||||
{ field: 'timestamp', operator: '<=', value: baseDate + 360_000 },
|
||||
{ field: 'name', operator: 'contains', value: 'Odd' },
|
||||
|
||||
@@ -13,7 +13,12 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { Visit, VisitsApi, VisitsApiQueryParams, VisitsApiSaveParams } from './VisitsApi';
|
||||
import {
|
||||
Visit,
|
||||
VisitsApi,
|
||||
VisitsApiQueryParams,
|
||||
VisitsApiSaveParams,
|
||||
} from './VisitsApi';
|
||||
|
||||
type ArrayElement<A> = A extends readonly (infer T)[] ? T : never;
|
||||
|
||||
@@ -50,7 +55,7 @@ export class VisitsApiFactory implements VisitsApi {
|
||||
this.persistAll = persistAll ?? (async () => {});
|
||||
}
|
||||
|
||||
async listVisits(queryParams?: VisitsApiQueryParams): Promise<Visit[]> {
|
||||
async list(queryParams?: VisitsApiQueryParams): Promise<Visit[]> {
|
||||
let visits = await this.retrieveAll();
|
||||
|
||||
// reversing order to guarantee orderBy priority
|
||||
@@ -80,9 +85,7 @@ export class VisitsApiFactory implements VisitsApi {
|
||||
return visits;
|
||||
}
|
||||
|
||||
async saveVisit(
|
||||
saveParams: VisitsApiSaveParams,
|
||||
): Promise<Visit> {
|
||||
async save(saveParams: VisitsApiSaveParams): Promise<Visit> {
|
||||
const visits = await this.retrieveAll();
|
||||
|
||||
const visit: Visit = {
|
||||
|
||||
@@ -45,8 +45,8 @@ const visits: Array<Visit> = [
|
||||
];
|
||||
|
||||
const mockVisitsApi = {
|
||||
saveVisit: jest.fn(async () => visits[0]),
|
||||
listVisits: jest.fn(async () => visits),
|
||||
save: jest.fn(async () => visits[0]),
|
||||
list: jest.fn(async () => visits),
|
||||
};
|
||||
|
||||
describe('<VisitListener/>', () => {
|
||||
@@ -63,10 +63,8 @@ describe('<VisitListener/>', () => {
|
||||
{ routeEntries: [pathname] },
|
||||
);
|
||||
|
||||
await waitFor(() =>
|
||||
expect(mockVisitsApi.saveVisit).toHaveBeenCalledTimes(1),
|
||||
);
|
||||
expect(mockVisitsApi.saveVisit).toHaveBeenCalledWith({
|
||||
await waitFor(() => expect(mockVisitsApi.save).toHaveBeenCalledTimes(1));
|
||||
expect(mockVisitsApi.save).toHaveBeenCalledWith({
|
||||
visit: {
|
||||
pathname,
|
||||
entityRef: 'component:default/playback-order',
|
||||
@@ -102,7 +100,7 @@ describe('<VisitListener/>', () => {
|
||||
);
|
||||
|
||||
await waitFor(() =>
|
||||
expect(mockVisitsApi.saveVisit).toHaveBeenCalledWith({
|
||||
expect(mockVisitsApi.save).toHaveBeenCalledWith({
|
||||
visit: {
|
||||
pathname,
|
||||
entityRef: 'component:default/playback-order',
|
||||
@@ -127,7 +125,7 @@ describe('<VisitListener/>', () => {
|
||||
);
|
||||
|
||||
await waitFor(() =>
|
||||
expect(mockVisitsApi.saveVisit).toHaveBeenCalledWith({
|
||||
expect(mockVisitsApi.save).toHaveBeenCalledWith({
|
||||
visit: {
|
||||
pathname,
|
||||
entityRef: pathname,
|
||||
|
||||
@@ -81,7 +81,7 @@ export const VisitListener = ({
|
||||
// Wait for the browser to finish with paint with the assumption react
|
||||
// has finished with dom reconciliation.
|
||||
const requestId = requestAnimationFrame(() => {
|
||||
visitsApi.saveVisit({
|
||||
visitsApi.save({
|
||||
visit: {
|
||||
name: visitNameImpl({ pathname }),
|
||||
pathname,
|
||||
|
||||
@@ -32,8 +32,8 @@ const visits = [
|
||||
];
|
||||
|
||||
const mockVisitsApi = {
|
||||
saveVisit: async () => visits[0],
|
||||
listVisits: async () => visits,
|
||||
save: async () => visits[0],
|
||||
list: async () => visits,
|
||||
};
|
||||
|
||||
describe('<Content kind="recent"/>', () => {
|
||||
|
||||
@@ -65,7 +65,7 @@ export const Content = ({
|
||||
const { loading: reqLoading } = useAsync(async () => {
|
||||
if (!visits && !loading && kind === 'recent') {
|
||||
return await visitsApi
|
||||
.listVisits({
|
||||
.list({
|
||||
limit: numVisitsTotal ?? 8,
|
||||
orderBy: [{ field: 'timestamp', direction: 'desc' }],
|
||||
})
|
||||
@@ -73,7 +73,7 @@ export const Content = ({
|
||||
}
|
||||
if (!visits && !loading && kind === 'top') {
|
||||
return await visitsApi
|
||||
.listVisits({
|
||||
.list({
|
||||
limit: numVisitsTotal ?? 8,
|
||||
orderBy: [{ field: 'hits', direction: 'desc' }],
|
||||
})
|
||||
|
||||
@@ -87,8 +87,8 @@ const visits: Array<Visit> = [
|
||||
];
|
||||
|
||||
const mockVisitsApi = {
|
||||
saveVisit: async () => visits[0],
|
||||
listUserVisits: async () => visits,
|
||||
save: async () => visits[0],
|
||||
list: async () => visits,
|
||||
};
|
||||
|
||||
export default {
|
||||
|
||||
Reference in New Issue
Block a user