Browse Source

ref(js): Remove TeamActions (#38937)

Evan Purkhiser 2 years ago
parent
commit
123f6802d1

+ 8 - 8
static/app/actionCreators/organization.spec.jsx

@@ -2,9 +2,9 @@ import {fetchOrganizationDetails} from 'sentry/actionCreators/organization';
 import * as OrganizationsActionCreator from 'sentry/actionCreators/organizations';
 import OrganizationActions from 'sentry/actions/organizationActions';
 import ProjectActions from 'sentry/actions/projectActions';
-import TeamActions from 'sentry/actions/teamActions';
 import OrganizationStore from 'sentry/stores/organizationStore';
 import PageFiltersStore from 'sentry/stores/pageFiltersStore';
+import TeamStore from 'sentry/stores/teamStore';
 
 describe('OrganizationActionCreator', function () {
   const org = TestStubs.Organization();
@@ -18,8 +18,8 @@ describe('OrganizationActionCreator', function () {
 
   beforeEach(function () {
     MockApiClient.clearMockResponses();
-    jest.spyOn(TeamActions, 'loadTeams');
-    jest.spyOn(TeamActions, 'reset');
+    jest.spyOn(TeamStore, 'loadInitialData');
+    jest.spyOn(TeamStore, 'reset');
     jest.spyOn(PageFiltersStore, 'onReset');
     jest.spyOn(ProjectActions, 'loadProjects');
     jest.spyOn(ProjectActions, 'reset');
@@ -54,7 +54,7 @@ describe('OrganizationActionCreator', function () {
     expect(OrganizationActions.reset).toHaveBeenCalled();
     expect(PageFiltersStore.onReset).toHaveBeenCalled();
     expect(ProjectActions.reset).toHaveBeenCalled();
-    expect(TeamActions.reset).toHaveBeenCalled();
+    expect(TeamStore.reset).toHaveBeenCalled();
 
     expect(getOrgMock).toHaveBeenCalledWith(
       `/organizations/${org.slug}/`,
@@ -71,7 +71,7 @@ describe('OrganizationActionCreator', function () {
     expect(OrganizationActions.update).toHaveBeenCalledWith(org, {replace: true});
     expect(OrganizationsActionCreator.setActiveOrganization).toHaveBeenCalled();
 
-    expect(TeamActions.loadTeams).toHaveBeenCalledWith(teams);
+    expect(TeamStore.loadInitialData).toHaveBeenCalledWith(teams);
     expect(ProjectActions.loadProjects).toHaveBeenCalledWith(projects);
 
     expect(OrganizationStore.organization).toEqual(org);
@@ -96,7 +96,7 @@ describe('OrganizationActionCreator', function () {
     expect(OrganizationActions.reset).not.toHaveBeenCalled();
     expect(PageFiltersStore.onReset).not.toHaveBeenCalled();
     expect(ProjectActions.reset).not.toHaveBeenCalled();
-    expect(TeamActions.reset).not.toHaveBeenCalled();
+    expect(TeamStore.reset).not.toHaveBeenCalled();
 
     expect(getOrgMock).toHaveBeenCalledWith(
       `/organizations/${org.slug}/`,
@@ -106,7 +106,7 @@ describe('OrganizationActionCreator', function () {
     expect(OrganizationActions.update).toHaveBeenCalledWith(org, {replace: true});
     expect(OrganizationsActionCreator.setActiveOrganization).toHaveBeenCalled();
 
-    expect(TeamActions.loadTeams).toHaveBeenCalledWith(teams);
+    expect(TeamStore.loadInitialData).toHaveBeenCalledWith(teams);
     expect(ProjectActions.loadProjects).toHaveBeenCalledWith(projects);
   });
 
@@ -129,7 +129,7 @@ describe('OrganizationActionCreator', function () {
     expect(OrganizationActions.reset).toHaveBeenCalled();
     expect(PageFiltersStore.onReset).toHaveBeenCalled();
     expect(ProjectActions.reset).toHaveBeenCalled();
-    expect(TeamActions.reset).toHaveBeenCalled();
+    expect(TeamStore.reset).toHaveBeenCalled();
     expect(getOrgMock).toHaveBeenCalledWith(
       `/organizations/${org.slug}/`,
       expect.anything()

+ 4 - 4
static/app/actionCreators/organization.tsx

@@ -8,9 +8,9 @@ import {addErrorMessage} from 'sentry/actionCreators/indicator';
 import {setActiveOrganization} from 'sentry/actionCreators/organizations';
 import OrganizationActions from 'sentry/actions/organizationActions';
 import ProjectActions from 'sentry/actions/projectActions';
-import TeamActions from 'sentry/actions/teamActions';
 import {Client, ResponseMeta} from 'sentry/api';
 import PageFiltersStore from 'sentry/stores/pageFiltersStore';
+import TeamStore from 'sentry/stores/teamStore';
 import {Organization, Project, Team} from 'sentry/types';
 import {getPreloadedDataPromise} from 'sentry/utils/getPreloadedData';
 import parseLinkHeader from 'sentry/utils/parseLinkHeader';
@@ -119,7 +119,7 @@ export function fetchOrganizationDetails(
   if (!silent) {
     OrganizationActions.reset();
     ProjectActions.reset();
-    TeamActions.reset();
+    TeamStore.reset();
     PageFiltersStore.onReset();
   }
 
@@ -165,9 +165,9 @@ export function fetchOrganizationDetails(
       const paginationObject = parseLinkHeader(teamPageLinks);
       const hasMore = paginationObject?.next?.results ?? false;
       const cursor = paginationObject.next?.cursor;
-      TeamActions.loadTeams(teams, hasMore, cursor);
+      TeamStore.loadInitialData(teams, hasMore, cursor);
     } else {
-      TeamActions.loadTeams(teams);
+      TeamStore.loadInitialData(teams);
     }
   };
 

+ 8 - 40
static/app/actionCreators/teams.tsx

@@ -1,10 +1,9 @@
 import {addErrorMessage, addSuccessMessage} from 'sentry/actionCreators/indicator';
-import TeamActions from 'sentry/actions/teamActions';
 import {Client} from 'sentry/api';
 import {tct} from 'sentry/locale';
+import TeamStore from 'sentry/stores/teamStore';
 import {Team} from 'sentry/types';
 import {callIfFunction} from 'sentry/utils/callIfFunction';
-import {uniqueId} from 'sentry/utils/guid';
 
 type CallbackOptions = {
   error?: Function;
@@ -30,25 +29,10 @@ type OrgAndTeamSlug = OrgSlug & {teamId: string};
  */
 type MemberId = {memberId: string};
 
-// Fetch teams for org
-export function fetchTeams(api: Client, params: OrgSlug, options: CallbackOptions) {
-  TeamActions.fetchAll(params.orgId);
-  return api.request(`/teams/${params.orgId}/`, {
-    success: data => {
-      TeamActions.fetchAllSuccess(params.orgId, data);
-      doCallback(options, 'success', data);
-    },
-    error: error => {
-      TeamActions.fetchAllError(params.orgId, error);
-      doCallback(options, 'error', error);
-    },
-  });
-}
-
 // Fetch user teams for current org and place them in the team store
 export async function fetchUserTeams(api: Client, params: OrgSlug) {
   const teams = await api.requestPromise(`/organizations/${params.orgId}/user-teams/`);
-  TeamActions.loadUserTeams(teams);
+  TeamStore.loadUserTeams(teams);
 }
 
 export function fetchTeamDetails(
@@ -56,21 +40,19 @@ export function fetchTeamDetails(
   params: OrgAndTeamSlug,
   options?: CallbackOptions
 ) {
-  TeamActions.fetchDetails(params.teamId);
   return api.request(`/teams/${params.orgId}/${params.teamId}/`, {
     success: data => {
-      TeamActions.fetchDetailsSuccess(params.teamId, data);
+      TeamStore.onUpdateSuccess(params.teamId, data);
       doCallback(options, 'success', data);
     },
     error: error => {
-      TeamActions.fetchDetailsError(params.teamId, error);
       doCallback(options, 'error', error);
     },
   });
 }
 
 export function updateTeamSuccess(teamId: OrgAndTeamSlug['teamId'], data: Team) {
-  TeamActions.updateSuccess(teamId, data);
+  TeamStore.onUpdateSuccess(teamId, data);
 }
 
 export function joinTeam(
@@ -81,18 +63,14 @@ export function joinTeam(
   const endpoint = `/organizations/${params.orgId}/members/${
     params.memberId ?? 'me'
   }/teams/${params.teamId}/`;
-  const id = uniqueId();
-
-  TeamActions.update(id, params.teamId);
 
   return api.request(endpoint, {
     method: 'POST',
     success: data => {
-      TeamActions.updateSuccess(params.teamId, data);
+      TeamStore.onUpdateSuccess(params.teamId, data);
       doCallback(options, 'success', data);
     },
     error: error => {
-      TeamActions.updateError(id, params.teamId, error);
       doCallback(options, 'error', error);
     },
   });
@@ -106,26 +84,20 @@ export function leaveTeam(
   const endpoint = `/organizations/${params.orgId}/members/${
     params.memberId || 'me'
   }/teams/${params.teamId}/`;
-  const id = uniqueId();
-
-  TeamActions.update(id, params.teamId);
 
   return api.request(endpoint, {
     method: 'DELETE',
     success: data => {
-      TeamActions.updateSuccess(params.teamId, data);
+      TeamStore.onUpdateSuccess(params.teamId, data);
       doCallback(options, 'success', data);
     },
     error: error => {
-      TeamActions.updateError(id, params.teamId, error);
       doCallback(options, 'error', error);
     },
   });
 }
 
 export function createTeam(api: Client, team: Pick<Team, 'slug'>, params: OrgSlug) {
-  TeamActions.createTeam(team);
-
   return api
     .requestPromise(`/organizations/${params.orgId}/teams/`, {
       method: 'POST',
@@ -133,7 +105,7 @@ export function createTeam(api: Client, team: Pick<Team, 'slug'>, params: OrgSlu
     })
     .then(
       data => {
-        TeamActions.createTeamSuccess(data);
+        TeamStore.onCreateSuccess(data);
         addSuccessMessage(
           tct('[team] has been added to the [organization] organization', {
             team: `#${data.slug}`,
@@ -143,7 +115,6 @@ export function createTeam(api: Client, team: Pick<Team, 'slug'>, params: OrgSlu
         return data;
       },
       err => {
-        TeamActions.createTeamError(team.slug, err);
         addErrorMessage(
           tct('Unable to create [team] in the [organization] organization', {
             team: `#${team.slug}`,
@@ -156,15 +127,13 @@ export function createTeam(api: Client, team: Pick<Team, 'slug'>, params: OrgSlu
 }
 
 export function removeTeam(api: Client, params: OrgAndTeamSlug) {
-  TeamActions.removeTeam(params.teamId);
-
   return api
     .requestPromise(`/teams/${params.orgId}/${params.teamId}/`, {
       method: 'DELETE',
     })
     .then(
       data => {
-        TeamActions.removeTeamSuccess(params.teamId, data);
+        TeamStore.onRemoveSuccess(params.teamId);
         addSuccessMessage(
           tct('[team] has been removed from the [organization] organization', {
             team: `#${params.teamId}`,
@@ -174,7 +143,6 @@ export function removeTeam(api: Client, params: OrgAndTeamSlug) {
         return data;
       },
       err => {
-        TeamActions.removeTeamError(params.teamId, err);
         addErrorMessage(
           tct('Unable to remove [team] from the [organization] organization', {
             team: `#${params.teamId}`,

+ 0 - 24
static/app/actions/teamActions.tsx

@@ -1,24 +0,0 @@
-import {createActions} from 'reflux';
-
-const TeamActions = createActions([
-  'createTeam',
-  'createTeamError',
-  'createTeamSuccess',
-  'fetchAll',
-  'fetchAllError',
-  'fetchAllSuccess',
-  'fetchDetails',
-  'fetchDetailsError',
-  'fetchDetailsSuccess',
-  'loadTeams',
-  'loadUserTeams',
-  'removeTeam',
-  'removeTeamError',
-  'removeTeamSuccess',
-  'reset',
-  'update',
-  'updateError',
-  'updateSuccess',
-]);
-
-export default TeamActions;

+ 0 - 1
static/app/components/assigneeSelector.spec.jsx

@@ -114,7 +114,6 @@ describe('AssigneeSelector', () => {
   afterEach(() => {
     Client.clearMockResponses();
     ProjectsStore.teardown();
-    TeamStore.teardown();
   });
 
   describe('render with props', () => {

+ 0 - 1
static/app/components/group/suggestedOwners.spec.jsx

@@ -43,7 +43,6 @@ describe('SuggestedOwners', function () {
 
   afterEach(function () {
     Client.clearMockResponses();
-    TeamStore.teardown();
   });
 
   it('Renders suggested owners', async function () {

+ 0 - 4
static/app/components/idBadge/teamBadge/teamBadge.spec.tsx

@@ -8,10 +8,6 @@ describe('TeamBadge', function () {
     TeamStore.init();
   });
 
-  afterEach(() => {
-    TeamStore.teardown();
-  });
-
   it('renders with Avatar and team name', function () {
     render(<TeamBadge team={TestStubs.Team()} />);
     expect(screen.getByTestId('badge-styled-avatar')).toBeInTheDocument();

+ 2 - 2
static/app/stores/projectsStore.spec.jsx

@@ -1,6 +1,6 @@
 import ProjectActions from 'sentry/actions/projectActions';
-import TeamActions from 'sentry/actions/teamActions';
 import ProjectsStore from 'sentry/stores/projectsStore';
+import TeamStore from 'sentry/stores/teamStore';
 
 describe('ProjectsStore', function () {
   const teamFoo = TestStubs.Team({
@@ -120,7 +120,7 @@ describe('ProjectsStore', function () {
         teams: [expect.objectContaining({slug: 'team-foo'})],
       });
 
-      TeamActions.removeTeamSuccess('team-foo');
+      TeamStore.onRemoveSuccess('team-foo');
       await tick();
 
       expect(ProjectsStore.itemsById[projectBar.id]).toMatchObject({

+ 0 - 5
static/app/stores/projectsStore.tsx

@@ -1,7 +1,6 @@
 import {createStore} from 'reflux';
 
 import ProjectActions from 'sentry/actions/projectActions';
-import TeamActions from 'sentry/actions/teamActions';
 import {Project, Team} from 'sentry/types';
 import {makeSafeRefluxStore} from 'sentry/utils/makeSafeRefluxStore';
 
@@ -72,10 +71,6 @@ const storeConfig: ProjectsStoreDefinition = {
     this.unsubscribeListeners.push(
       this.listenTo(ProjectActions.updateSuccess, this.onUpdateSuccess)
     );
-
-    this.unsubscribeListeners.push(
-      this.listenTo(TeamActions.removeTeamSuccess, this.onDeleteTeam)
-    );
   },
 
   reset() {

+ 12 - 16
static/app/stores/teamStore.spec.jsx

@@ -1,4 +1,3 @@
-import TeamActions from 'sentry/actions/teamActions';
 import TeamStore from 'sentry/stores/teamStore';
 
 describe('TeamStore', function () {
@@ -16,7 +15,7 @@ describe('TeamStore', function () {
   });
 
   describe('setting data', function () {
-    it('populate teams correctly', async function () {
+    it('populate teams correctly', function () {
       expect(TeamStore.getState()).toMatchObject({
         teams: [],
         loading: true,
@@ -25,8 +24,7 @@ describe('TeamStore', function () {
         loadedUserTeams: false,
       });
 
-      TeamActions.loadTeams([teamFoo, teamBar]);
-      await tick();
+      TeamStore.loadInitialData([teamFoo, teamBar]);
       expect(TeamStore.getState()).toMatchObject({
         teams: [teamBar, teamFoo],
         loading: false,
@@ -36,21 +34,20 @@ describe('TeamStore', function () {
       });
     });
 
-    it('loads user teams', async function () {
+    it('loads user teams', function () {
       expect(TeamStore.getState()).toMatchObject({
         teams: [],
         loadedUserTeams: false,
       });
 
-      TeamActions.loadUserTeams([teamFoo]);
-      await tick();
+      TeamStore.loadUserTeams([teamFoo]);
       expect(TeamStore.getState()).toMatchObject({
         teams: [teamFoo],
         loadedUserTeams: true,
       });
     });
 
-    it('stores cursor and hasMore correctly', async function () {
+    it('stores cursor and hasMore correctly', function () {
       expect(TeamStore.getState()).toMatchObject({
         teams: [],
         hasMore: null,
@@ -58,8 +55,7 @@ describe('TeamStore', function () {
         loadedUserTeams: false,
       });
 
-      TeamActions.loadTeams([teamFoo], false, null);
-      await tick();
+      TeamStore.loadInitialData([teamFoo], false, null);
       expect(TeamStore.getState()).toMatchObject({
         teams: [teamFoo],
         hasMore: false,
@@ -71,13 +67,13 @@ describe('TeamStore', function () {
 
   describe('updating teams', function () {
     it('adds new teams', async function () {
-      TeamActions.loadTeams([teamFoo]);
+      TeamStore.loadInitialData([teamFoo]);
       await tick();
       expect(TeamStore.getState()).toMatchObject({
         teams: [teamFoo],
       });
 
-      TeamActions.createTeamSuccess(teamBar);
+      TeamStore.onCreateSuccess(teamBar);
       await tick();
       expect(TeamStore.getState()).toMatchObject({
         teams: [teamBar, teamFoo],
@@ -85,13 +81,13 @@ describe('TeamStore', function () {
     });
 
     it('removes teams', async function () {
-      TeamActions.loadTeams([teamFoo]);
+      TeamStore.loadInitialData([teamFoo]);
       await tick();
       expect(TeamStore.getState()).toMatchObject({
         teams: [teamFoo],
       });
 
-      TeamActions.removeTeamSuccess(teamFoo.slug);
+      TeamStore.onRemoveSuccess(teamFoo.slug);
       await tick();
       expect(TeamStore.getState()).toMatchObject({
         teams: [],
@@ -99,13 +95,13 @@ describe('TeamStore', function () {
     });
 
     it('updates teams', async function () {
-      TeamActions.loadTeams([teamFoo]);
+      TeamStore.loadInitialData([teamFoo]);
       await tick();
       expect(TeamStore.getState()).toMatchObject({
         teams: [teamFoo],
       });
 
-      TeamActions.updateSuccess(teamFoo.slug, teamBar);
+      TeamStore.onUpdateSuccess(teamFoo.slug, teamBar);
       await tick();
       expect(TeamStore.getState()).toMatchObject({
         teams: [teamBar],

Some files were not shown because too many files changed in this diff