Compare commits
3 Commits
f6e7fb3a41
...
ad8441f72f
| Author | SHA1 | Date | |
|---|---|---|---|
| ad8441f72f | |||
| ca3ba921be | |||
| 15e260bcaa |
3
.gitignore
vendored
3
.gitignore
vendored
@ -134,3 +134,6 @@ dist
|
|||||||
*.env
|
*.env
|
||||||
|
|
||||||
test-results.xml
|
test-results.xml
|
||||||
|
|
||||||
|
DS_STORE
|
||||||
|
**/DS_Store
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
# FarmControl WebSocket Service
|
# FarmControl WebSocket Service
|
||||||
|
|
||||||
|
[](https://ci.tombutcher.work/job/farmcontrol/job/farmcontrol-ws/job/main/)
|
||||||
|
|
||||||
A WebSocket microservice for FarmControl that handles real-time communication and distributed locking.
|
A WebSocket microservice for FarmControl that handles real-time communication and distributed locking.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|||||||
@ -100,9 +100,15 @@ describe('SocketUser', () => {
|
|||||||
|
|
||||||
it('should initialize correctly and setup event handlers', () => {
|
it('should initialize correctly and setup event handlers', () => {
|
||||||
expect(mockSocket.use).toHaveBeenCalled();
|
expect(mockSocket.use).toHaveBeenCalled();
|
||||||
expect(mockSocket.on).toHaveBeenCalledWith('authenticate', expect.any(Function));
|
expect(mockSocket.on).toHaveBeenCalledWith(
|
||||||
|
'authenticate',
|
||||||
|
expect.any(Function)
|
||||||
|
);
|
||||||
expect(mockSocket.on).toHaveBeenCalledWith('lock', expect.any(Function));
|
expect(mockSocket.on).toHaveBeenCalledWith('lock', expect.any(Function));
|
||||||
expect(mockSocket.on).toHaveBeenCalledWith('disconnect', expect.any(Function));
|
expect(mockSocket.on).toHaveBeenCalledWith(
|
||||||
|
'disconnect',
|
||||||
|
expect.any(Function)
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('handleAuthenticateEvent', () => {
|
describe('handleAuthenticateEvent', () => {
|
||||||
@ -111,11 +117,16 @@ describe('SocketUser', () => {
|
|||||||
const callback = jest.fn();
|
const callback = jest.fn();
|
||||||
const mockUser = { _id: 'user-id-obj', username: 'testuser' };
|
const mockUser = { _id: 'user-id-obj', username: 'testuser' };
|
||||||
|
|
||||||
socketUser.keycloakAuth.verifyToken.mockResolvedValue({ valid: true, user: mockUser });
|
socketUser.keycloakAuth.verifyToken.mockResolvedValue({
|
||||||
|
valid: true,
|
||||||
|
user: mockUser
|
||||||
|
});
|
||||||
|
|
||||||
await socketUser.handleAuthenticateEvent(data, callback);
|
await socketUser.handleAuthenticateEvent(data, callback);
|
||||||
|
|
||||||
expect(socketUser.keycloakAuth.verifyToken).toHaveBeenCalledWith('valid-token');
|
expect(socketUser.keycloakAuth.verifyToken).toHaveBeenCalledWith(
|
||||||
|
'valid-token'
|
||||||
|
);
|
||||||
expect(socketUser.authenticated).toBe(true);
|
expect(socketUser.authenticated).toBe(true);
|
||||||
expect(socketUser.user).toEqual(mockUser);
|
expect(socketUser.user).toEqual(mockUser);
|
||||||
expect(socketUser.id).toBe('user-id-obj');
|
expect(socketUser.id).toBe('user-id-obj');
|
||||||
@ -184,4 +195,3 @@ describe('SocketUser', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user