Files
windmill/backend/tests/fixtures/instance_group_auto_add.sql
Ruben Fiszel 6ec4b92999 test: add integration tests for instance group and workspace auto-add interaction
Add tests verifying the interaction between instance groups and workspace
auto-add functionality:
- Users in instance groups get auto-added to configured workspaces
- Role assignment (admin/operator/developer) works correctly
- Role precedence when user belongs to multiple groups
- User removal when removed from instance group
- Cleanup when instance groups removed from workspace config
- added_via field tracking

Tests are ignored by default in CI and can be run locally with:
cargo test -p windmill --test instance_group_auto_add --features private,enterprise -- --ignored

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 23:46:27 +00:00

77 lines
2.8 KiB
SQL

-- Fixture for instance group auto-add tests
-- Sets up test data for testing the interaction between instance groups and workspace auto-add
-- Create additional workspaces for testing
INSERT INTO workspace (id, name, owner)
VALUES
('ws-with-auto-add', 'Workspace with Auto Add', 'admin'),
('ws-no-auto-add', 'Workspace without Auto Add', 'admin'),
('ws-multi-group', 'Workspace with Multiple Groups', 'admin')
ON CONFLICT DO NOTHING;
INSERT INTO workspace_settings (workspace_id)
VALUES
('ws-with-auto-add'),
('ws-no-auto-add'),
('ws-multi-group')
ON CONFLICT DO NOTHING;
INSERT INTO workspace_key(workspace_id, kind, key)
VALUES
('ws-with-auto-add', 'cloud', 'key-auto-add'),
('ws-no-auto-add', 'cloud', 'key-no-auto'),
('ws-multi-group', 'cloud', 'key-multi')
ON CONFLICT DO NOTHING;
-- Create instance groups
INSERT INTO instance_group (name, summary, id)
VALUES
('engineering', 'Engineering team', 'eng-uuid-001'),
('sales', 'Sales team', 'sales-uuid-002'),
('admins', 'Admin group', 'admin-uuid-003')
ON CONFLICT DO NOTHING;
-- Create users in the password table (required for auto-add eligibility)
INSERT INTO password (email, password_hash, login_type, super_admin, verified, name)
VALUES
('alice@example.com', 'hash1', 'password', false, true, 'Alice'),
('bob@example.com', 'hash2', 'password', false, true, 'Bob'),
('charlie@example.com', 'hash3', 'password', false, true, 'Charlie'),
('dave@example.com', 'hash4', 'password', false, true, 'Dave'),
('admin@windmill.dev', 'hash5', 'password', true, true, 'Admin')
ON CONFLICT DO NOTHING;
-- Add users to instance groups
INSERT INTO email_to_igroup (email, igroup)
VALUES
('alice@example.com', 'engineering'),
('bob@example.com', 'engineering'),
('bob@example.com', 'sales'),
('charlie@example.com', 'sales'),
('dave@example.com', 'admins')
ON CONFLICT DO NOTHING;
-- Create admin user in workspaces for running tests
INSERT INTO usr (workspace_id, username, email, is_admin, operator)
VALUES
('ws-with-auto-add', 'admin', 'admin@windmill.dev', true, false),
('ws-no-auto-add', 'admin', 'admin@windmill.dev', true, false),
('ws-multi-group', 'admin', 'admin@windmill.dev', true, false)
ON CONFLICT DO NOTHING;
-- Create the 'all' group for each workspace (required for user auto-add)
INSERT INTO group_ (workspace_id, name, summary, extra_perms)
VALUES
('ws-with-auto-add', 'all', 'All users', '{}'),
('ws-no-auto-add', 'all', 'All users', '{}'),
('ws-multi-group', 'all', 'All users', '{}')
ON CONFLICT DO NOTHING;
-- Add admin to the 'all' group
INSERT INTO usr_to_group (workspace_id, usr, group_)
VALUES
('ws-with-auto-add', 'admin', 'all'),
('ws-no-auto-add', 'admin', 'all'),
('ws-multi-group', 'admin', 'all')
ON CONFLICT DO NOTHING;