mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
114 lines
2.7 KiB
TypeScript
114 lines
2.7 KiB
TypeScript
import {TeamFixture} from 'sentry-fixture/team';
|
|
|
|
import TeamStore from 'sentry/stores/teamStore';
|
|
|
|
describe('TeamStore', function () {
|
|
const teamFoo = TeamFixture({
|
|
id: '1',
|
|
slug: 'team-foo',
|
|
});
|
|
const teamBar = TeamFixture({
|
|
id: '2',
|
|
slug: 'team-bar',
|
|
});
|
|
|
|
beforeEach(function () {
|
|
TeamStore.reset();
|
|
});
|
|
|
|
describe('setting data', function () {
|
|
it('populate teams correctly', function () {
|
|
expect(TeamStore.getState()).toMatchObject({
|
|
teams: [],
|
|
loading: true,
|
|
hasMore: null,
|
|
cursor: null,
|
|
loadedUserTeams: false,
|
|
});
|
|
|
|
TeamStore.loadInitialData([teamFoo, teamBar]);
|
|
expect(TeamStore.getState()).toMatchObject({
|
|
teams: [teamBar, teamFoo],
|
|
loading: false,
|
|
hasMore: null,
|
|
cursor: null,
|
|
loadedUserTeams: false,
|
|
});
|
|
});
|
|
|
|
it('loads user teams', function () {
|
|
expect(TeamStore.getState()).toMatchObject({
|
|
teams: [],
|
|
loadedUserTeams: false,
|
|
});
|
|
|
|
TeamStore.loadUserTeams([teamFoo]);
|
|
expect(TeamStore.getState()).toMatchObject({
|
|
teams: [teamFoo],
|
|
loadedUserTeams: true,
|
|
});
|
|
});
|
|
|
|
it('stores cursor and hasMore correctly', function () {
|
|
expect(TeamStore.getState()).toMatchObject({
|
|
teams: [],
|
|
hasMore: null,
|
|
cursor: null,
|
|
loadedUserTeams: false,
|
|
});
|
|
|
|
TeamStore.loadInitialData([teamFoo], false, null);
|
|
expect(TeamStore.getState()).toMatchObject({
|
|
teams: [teamFoo],
|
|
hasMore: false,
|
|
cursor: null,
|
|
loadedUserTeams: true,
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('updating teams', function () {
|
|
it('adds new teams', async function () {
|
|
TeamStore.loadInitialData([teamFoo]);
|
|
await tick();
|
|
expect(TeamStore.getState()).toMatchObject({
|
|
teams: [teamFoo],
|
|
});
|
|
|
|
TeamStore.onCreateSuccess(teamBar);
|
|
await tick();
|
|
expect(TeamStore.getState()).toMatchObject({
|
|
teams: [teamBar, teamFoo],
|
|
});
|
|
});
|
|
|
|
it('removes teams', async function () {
|
|
TeamStore.loadInitialData([teamFoo]);
|
|
await tick();
|
|
expect(TeamStore.getState()).toMatchObject({
|
|
teams: [teamFoo],
|
|
});
|
|
|
|
TeamStore.onRemoveSuccess(teamFoo.slug);
|
|
await tick();
|
|
expect(TeamStore.getState()).toMatchObject({
|
|
teams: [],
|
|
});
|
|
});
|
|
|
|
it('updates teams', async function () {
|
|
TeamStore.loadInitialData([teamFoo]);
|
|
await tick();
|
|
expect(TeamStore.getState()).toMatchObject({
|
|
teams: [teamFoo],
|
|
});
|
|
|
|
TeamStore.onUpdateSuccess(teamFoo.slug, teamBar);
|
|
await tick();
|
|
expect(TeamStore.getState()).toMatchObject({
|
|
teams: [teamBar],
|
|
});
|
|
});
|
|
});
|
|
});
|