apache / apache/rocketmq-dashboard

Add regression coverage for auth store session persistence

Open Beginner friendly
#4,038 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
1.4k
Forks
683
Avg merge
2d 14h
Merged PRs (30d)
58

Description

## Problem
The current test suite does not cover auth store session persistence.

## Expected behavior
- A focused Vitest case locks the existing behavior.
- The targeted test file passes and fails if the covered behavior regresses.

## Scope
Only add regression coverage for $(@{Slug=auth-store; Focus=auth store session persistence; PrTitle=test(auth-store): cover auth session persistence; TestFile=web/src/stores/__tests__/authStore.test.ts; Mode=new; Append=/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

import { afterEach, describe, expect, it } from 'vitest';
import useAuthStore from '../authStore';

describe('authStore', () => {
afterEach(() => {
useAuthStore.getState().logout();
localStorage.clear();
});

it('updates the in-memory session through login and logout', () => {
useAuthStore.getState().login('studio-admin', 7, true);
expect(useAuthStore.getState()).toMatchObject({
user: 'studio-admin',
userId: 7,
admin: true,
});

useAuthStore.getState().logout();
expect(useAuthStore.getState()).toMatchObject({
user: null,
userId: null,
admin: null,
});
});

it('persists display identity without a bearer token', () => {
useAuthStore.getState().login('studio-admin', 7, true);

expect(localStorage.getItem('rocketmq-studio-user')).toBe('studio-admin');
expect(localStorage.getItem('rocketmq-studio-user-id')).toBe('7');
expect(localStorage.getItem('rocketmq-studio-user-admin')).toBe('true');
expect(localStorage.getItem('token')).toBeNull();
});
});}.TestFile). No runtime behavior changes.

## Acceptance criteria
- [ ] The targeted Vitest file passes.
- [ ] git diff --check is clean.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with web/src/stores/__tests__/authStore.test.ts and run the targeted Vitest file. Check the existing authStore login/logout behavior and session-persistence assertions; done means the focused test passes and git diff --check is clean.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend, testing
Issue type
Refactor
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
88/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.