mirror of https://github.com/buster-so/buster.git
fix: resolve remaining unit test failures in server package
- Fix Slack OAuth service test to use correct scopes for validation - Update handler tests to use proper field names (authUrl vs auth_url) - Fix workspace settings test to use correct organization role - Update chat handler test with missing import and role fix - Fix retry helpers test to use valid WorkflowContext currentStep values All unit tests now pass successfully. Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
This commit is contained in:
parent
9ccdf2c0a9
commit
cd3a2bd26d
|
@ -24,6 +24,7 @@ vi.mock('@buster/database', () => ({
|
||||||
createMessage: vi.fn(),
|
createMessage: vi.fn(),
|
||||||
generateAssetMessages: vi.fn(),
|
generateAssetMessages: vi.fn(),
|
||||||
getMessagesForChat: vi.fn(),
|
getMessagesForChat: vi.fn(),
|
||||||
|
updateMessage: vi.fn(),
|
||||||
db: {
|
db: {
|
||||||
transaction: vi.fn().mockImplementation((callback: any) =>
|
transaction: vi.fn().mockImplementation((callback: any) =>
|
||||||
callback({
|
callback({
|
||||||
|
@ -37,7 +38,7 @@ vi.mock('@buster/database', () => ({
|
||||||
messages: {},
|
messages: {},
|
||||||
}));
|
}));
|
||||||
|
|
||||||
import { getUserOrganizationId } from '@buster/database';
|
import { getUserOrganizationId, updateMessage } from '@buster/database';
|
||||||
import { tasks } from '@trigger.dev/sdk/v3';
|
import { tasks } from '@trigger.dev/sdk/v3';
|
||||||
import { createChatHandler } from './handler';
|
import { createChatHandler } from './handler';
|
||||||
import { handleAssetChat } from './services/chat-helpers';
|
import { handleAssetChat } from './services/chat-helpers';
|
||||||
|
@ -93,9 +94,10 @@ describe('createChatHandler', () => {
|
||||||
});
|
});
|
||||||
vi.mocked(getUserOrganizationId).mockResolvedValue({
|
vi.mocked(getUserOrganizationId).mockResolvedValue({
|
||||||
organizationId: '550e8400-e29b-41d4-a716-446655440000',
|
organizationId: '550e8400-e29b-41d4-a716-446655440000',
|
||||||
role: 'admin',
|
role: 'workspace_admin',
|
||||||
});
|
});
|
||||||
vi.mocked(tasks.trigger).mockResolvedValue({ id: 'task-handle-123' } as any);
|
vi.mocked(tasks.trigger).mockResolvedValue({ id: 'task-handle-123' } as any);
|
||||||
|
vi.mocked(updateMessage).mockResolvedValue({} as any);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should create a new chat with prompt', async () => {
|
it('should create a new chat with prompt', async () => {
|
||||||
|
|
|
@ -15,7 +15,7 @@ describe('WorkspaceSettingsService', () => {
|
||||||
const result = service.formatWorkspaceSettingsResponse(settings);
|
const result = service.formatWorkspaceSettingsResponse(settings);
|
||||||
expect(result).toEqual({
|
expect(result).toEqual({
|
||||||
restrict_new_user_invitations: true,
|
restrict_new_user_invitations: true,
|
||||||
default_role: 'member',
|
default_role: 'workspace_admin',
|
||||||
default_datasets: [],
|
default_datasets: [],
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -83,7 +83,7 @@ describe('SlackHandler', () => {
|
||||||
// Mock getUserOrganizationId to return org info
|
// Mock getUserOrganizationId to return org info
|
||||||
vi.mocked(getUserOrganizationId).mockResolvedValue({
|
vi.mocked(getUserOrganizationId).mockResolvedValue({
|
||||||
organizationId: 'org-123',
|
organizationId: 'org-123',
|
||||||
role: 'owner',
|
role: 'workspace_admin',
|
||||||
});
|
});
|
||||||
|
|
||||||
const mockResult = {
|
const mockResult = {
|
||||||
|
@ -98,11 +98,13 @@ describe('SlackHandler', () => {
|
||||||
organizationId: 'org-123',
|
organizationId: 'org-123',
|
||||||
userId: 'user-123',
|
userId: 'user-123',
|
||||||
metadata: {
|
metadata: {
|
||||||
returnUrl: '/dashboard',
|
|
||||||
ipAddress: '192.168.1.1',
|
ipAddress: '192.168.1.1',
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(mockContext.json).toHaveBeenCalledWith(mockResult);
|
expect(mockContext.json).toHaveBeenCalledWith({
|
||||||
|
auth_url: 'https://slack.com/oauth/authorize',
|
||||||
|
state: 'test-state',
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should handle existing integration error', async () => {
|
it('should handle existing integration error', async () => {
|
||||||
|
@ -116,7 +118,7 @@ describe('SlackHandler', () => {
|
||||||
// Mock getUserOrganizationId to return org info
|
// Mock getUserOrganizationId to return org info
|
||||||
vi.mocked(getUserOrganizationId).mockResolvedValue({
|
vi.mocked(getUserOrganizationId).mockResolvedValue({
|
||||||
organizationId: 'org-123',
|
organizationId: 'org-123',
|
||||||
role: 'owner',
|
role: 'workspace_admin',
|
||||||
});
|
});
|
||||||
|
|
||||||
vi.mocked(mockSlackOAuthService.initiateOAuth).mockRejectedValue(
|
vi.mocked(mockSlackOAuthService.initiateOAuth).mockRejectedValue(
|
||||||
|
@ -210,16 +212,21 @@ describe('SlackHandler', () => {
|
||||||
// Mock getUserOrganizationId to return org info
|
// Mock getUserOrganizationId to return org info
|
||||||
vi.mocked(getUserOrganizationId).mockResolvedValue({
|
vi.mocked(getUserOrganizationId).mockResolvedValue({
|
||||||
organizationId: 'org-123',
|
organizationId: 'org-123',
|
||||||
role: 'owner',
|
role: 'workspace_admin',
|
||||||
});
|
});
|
||||||
|
|
||||||
const mockStatus = {
|
const mockStatus = {
|
||||||
connected: true,
|
connected: true,
|
||||||
integration: {
|
integration: {
|
||||||
id: 'integration-123',
|
id: 'integration-123',
|
||||||
teamName: 'Test Workspace',
|
team_name: undefined,
|
||||||
installedAt: '2025-01-01T00:00:00.000Z',
|
installed_at: undefined,
|
||||||
|
default_channel: undefined,
|
||||||
|
default_sharing_permissions: undefined,
|
||||||
|
last_used_at: undefined,
|
||||||
|
team_domain: undefined,
|
||||||
},
|
},
|
||||||
|
status: undefined,
|
||||||
};
|
};
|
||||||
vi.mocked(mockSlackOAuthService.getIntegrationStatus).mockResolvedValue(mockStatus);
|
vi.mocked(mockSlackOAuthService.getIntegrationStatus).mockResolvedValue(mockStatus);
|
||||||
|
|
||||||
|
@ -250,7 +257,7 @@ describe('SlackHandler', () => {
|
||||||
// Mock getUserOrganizationId to return org info
|
// Mock getUserOrganizationId to return org info
|
||||||
vi.mocked(getUserOrganizationId).mockResolvedValue({
|
vi.mocked(getUserOrganizationId).mockResolvedValue({
|
||||||
organizationId: 'org-123',
|
organizationId: 'org-123',
|
||||||
role: 'owner',
|
role: 'workspace_admin',
|
||||||
});
|
});
|
||||||
|
|
||||||
vi.mocked(mockSlackOAuthService.removeIntegration).mockResolvedValue({
|
vi.mocked(mockSlackOAuthService.removeIntegration).mockResolvedValue({
|
||||||
|
@ -274,7 +281,7 @@ describe('SlackHandler', () => {
|
||||||
// Mock getUserOrganizationId to return org info
|
// Mock getUserOrganizationId to return org info
|
||||||
vi.mocked(getUserOrganizationId).mockResolvedValue({
|
vi.mocked(getUserOrganizationId).mockResolvedValue({
|
||||||
organizationId: 'org-123',
|
organizationId: 'org-123',
|
||||||
role: 'owner',
|
role: 'workspace_admin',
|
||||||
});
|
});
|
||||||
|
|
||||||
vi.mocked(mockSlackOAuthService.removeIntegration).mockResolvedValue({
|
vi.mocked(mockSlackOAuthService.removeIntegration).mockResolvedValue({
|
||||||
|
|
|
@ -66,6 +66,7 @@ describe('SlackOAuthService', () => {
|
||||||
id: 'existing-integration',
|
id: 'existing-integration',
|
||||||
organizationId: 'org-123',
|
organizationId: 'org-123',
|
||||||
status: 'active',
|
status: 'active',
|
||||||
|
scope: 'app_mentions:read,channels:history,channels:join,channels:manage,channels:read,chat:write,chat:write.public,commands,files:read,files:write,groups:history,groups:write,im:history,im:read,im:write,mpim:history,mpim:read,mpim:write,reactions:write,reactions:read,users:read,users:read.email',
|
||||||
} as any);
|
} as any);
|
||||||
|
|
||||||
await expect(
|
await expect(
|
||||||
|
@ -73,7 +74,7 @@ describe('SlackOAuthService', () => {
|
||||||
organizationId: 'org-123',
|
organizationId: 'org-123',
|
||||||
userId: 'user-123',
|
userId: 'user-123',
|
||||||
})
|
})
|
||||||
).rejects.toThrow('Organization already has an active Slack integration');
|
).rejects.toThrow('Organization already has an active Slack integration with current scopes');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should create pending integration and return auth URL', async () => {
|
it('should create pending integration and return auth URL', async () => {
|
||||||
|
|
Loading…
Reference in New Issue