Skip to content

Commit

Permalink
Update data fix
Browse files Browse the repository at this point in the history
  • Loading branch information
cp-pratik-k committed Jul 26, 2023
1 parent 87029d6 commit 6c5ba38
Show file tree
Hide file tree
Showing 20 changed files with 387 additions and 58 deletions.
19 changes: 10 additions & 9 deletions lib/data/bloc/user_state/user_state_controller_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ class UserStateControllerBloc
CheckUserStatus event, Emitter<UserControllerStatus> emit) async {
try {
log("Function called", name: "User Status");
final Space? space = await _spaceService.getSpace(_userStateNotifier.currentSpaceId!);
final Space? space =
await _spaceService.getSpace(_userStateNotifier.currentSpaceId!);
log("space fetched", name: "User Status");
_subscription =
_employeeRepo.memberDetails(_userStateNotifier.userUID!).listen(
Expand All @@ -67,14 +68,14 @@ class UserStateControllerBloc

Future<void> _updateData(
UpdateUserData event, Emitter<UserControllerStatus> emit) async {
if (event.employee != null &&
event.space != null &&
event.employee?.status == EmployeeStatus.active) {
if (event.employee != _userStateNotifier.employee ||
event.space != _userStateNotifier.currentSpace) {
await _userStateNotifier.setEmployeeWithSpace(
space: event.space!, spaceUser: event.employee!, redirect: false);
log("Data updated", name: "User Status");
if (event.employee != null && event.space != null && event.employee?.status == EmployeeStatus.active) {
if (event.employee != _userStateNotifier.employee) {
await _userStateNotifier.setEmployee(member: event.employee!);
log("Employee updated", name: "User Status");
}
if (event.space != _userStateNotifier.currentSpace) {
await _userStateNotifier.setSpace(space: event.space!);
log("Space updated", name: "User Status");
}
emit(const UserUpdatedStatus());
} else {
Expand Down
24 changes: 14 additions & 10 deletions lib/data/provider/user_state.dart
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,22 @@ class UserStateNotifier with ChangeNotifier {
}

Future<void> setEmployeeWithSpace(
{required Space space,
required Employee spaceUser,
bool redirect = true}) async {
{required Space space, required Employee spaceUser}) async {
await _userPreference.setSpace(space);
await _userPreference.setEmployee(spaceUser);
if (redirect) {
_userState = UserState.update;
notifyListeners();
_userState = UserState.spaceJoined;
await getIt<LeaveRepo>().reset();
await getIt<EmployeeRepo>().reset();
}
_userState = UserState.update;
notifyListeners();
_userState = UserState.spaceJoined;
await getIt<LeaveRepo>().reset();
await getIt<EmployeeRepo>().reset();
}

Future<void> setEmployee({required Employee member}) async {
await _userPreference.setEmployee(member);
}

Future<void> setSpace({required Space space}) async {
await _userPreference.setSpace(space);
}

Future<void> updateSpace(Space space) async {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,6 @@ class MockUserStateNotifier extends _i1.Mock implements _i7.UserStateNotifier {
_i5.Future<void> setEmployeeWithSpace({
required _i9.Space? space,
required _i3.Employee? spaceUser,
bool? redirect = true,
}) =>
(super.noSuchMethod(
Invocation.method(
Expand All @@ -212,13 +211,33 @@ class MockUserStateNotifier extends _i1.Mock implements _i7.UserStateNotifier {
{
#space: space,
#spaceUser: spaceUser,
#redirect: redirect,
},
),
returnValue: _i5.Future<void>.value(),
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);
@override
_i5.Future<void> setEmployee({required _i3.Employee? member}) =>
(super.noSuchMethod(
Invocation.method(
#setEmployee,
[],
{#member: member},
),
returnValue: _i5.Future<void>.value(),
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);
@override
_i5.Future<void> setSpace({required _i9.Space? space}) => (super.noSuchMethod(
Invocation.method(
#setSpace,
[],
{#space: space},
),
returnValue: _i5.Future<void>.value(),
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);
@override
_i5.Future<void> updateSpace(_i9.Space? space) => (super.noSuchMethod(
Invocation.method(
#updateSpace,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,6 @@ class MockUserStateNotifier extends _i1.Mock implements _i7.UserStateNotifier {
_i5.Future<void> setEmployeeWithSpace({
required _i9.Space? space,
required _i3.Employee? spaceUser,
bool? redirect = true,
}) =>
(super.noSuchMethod(
Invocation.method(
Expand All @@ -262,13 +261,33 @@ class MockUserStateNotifier extends _i1.Mock implements _i7.UserStateNotifier {
{
#space: space,
#spaceUser: spaceUser,
#redirect: redirect,
},
),
returnValue: _i5.Future<void>.value(),
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);
@override
_i5.Future<void> setEmployee({required _i3.Employee? member}) =>
(super.noSuchMethod(
Invocation.method(
#setEmployee,
[],
{#member: member},
),
returnValue: _i5.Future<void>.value(),
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);
@override
_i5.Future<void> setSpace({required _i9.Space? space}) => (super.noSuchMethod(
Invocation.method(
#setSpace,
[],
{#space: space},
),
returnValue: _i5.Future<void>.value(),
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);
@override
_i5.Future<void> updateSpace(_i9.Space? space) => (super.noSuchMethod(
Invocation.method(
#updateSpace,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -490,7 +490,6 @@ class MockUserStateNotifier extends _i1.Mock implements _i12.UserStateNotifier {
_i7.Future<void> setEmployeeWithSpace({
required _i13.Space? space,
required _i5.Employee? spaceUser,
bool? redirect = true,
}) =>
(super.noSuchMethod(
Invocation.method(
Expand All @@ -499,13 +498,34 @@ class MockUserStateNotifier extends _i1.Mock implements _i12.UserStateNotifier {
{
#space: space,
#spaceUser: spaceUser,
#redirect: redirect,
},
),
returnValue: _i7.Future<void>.value(),
returnValueForMissingStub: _i7.Future<void>.value(),
) as _i7.Future<void>);
@override
_i7.Future<void> setEmployee({required _i5.Employee? member}) =>
(super.noSuchMethod(
Invocation.method(
#setEmployee,
[],
{#member: member},
),
returnValue: _i7.Future<void>.value(),
returnValueForMissingStub: _i7.Future<void>.value(),
) as _i7.Future<void>);
@override
_i7.Future<void> setSpace({required _i13.Space? space}) =>
(super.noSuchMethod(
Invocation.method(
#setSpace,
[],
{#space: space},
),
returnValue: _i7.Future<void>.value(),
returnValueForMissingStub: _i7.Future<void>.value(),
) as _i7.Future<void>);
@override
_i7.Future<void> updateSpace(_i13.Space? space) => (super.noSuchMethod(
Invocation.method(
#updateSpace,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,6 @@ class MockUserStateNotifier extends _i1.Mock implements _i8.UserStateNotifier {
_i6.Future<void> setEmployeeWithSpace({
required _i10.Space? space,
required _i4.Employee? spaceUser,
bool? redirect = true,
}) =>
(super.noSuchMethod(
Invocation.method(
Expand All @@ -299,13 +298,34 @@ class MockUserStateNotifier extends _i1.Mock implements _i8.UserStateNotifier {
{
#space: space,
#spaceUser: spaceUser,
#redirect: redirect,
},
),
returnValue: _i6.Future<void>.value(),
returnValueForMissingStub: _i6.Future<void>.value(),
) as _i6.Future<void>);
@override
_i6.Future<void> setEmployee({required _i4.Employee? member}) =>
(super.noSuchMethod(
Invocation.method(
#setEmployee,
[],
{#member: member},
),
returnValue: _i6.Future<void>.value(),
returnValueForMissingStub: _i6.Future<void>.value(),
) as _i6.Future<void>);
@override
_i6.Future<void> setSpace({required _i10.Space? space}) =>
(super.noSuchMethod(
Invocation.method(
#setSpace,
[],
{#space: space},
),
returnValue: _i6.Future<void>.value(),
returnValueForMissingStub: _i6.Future<void>.value(),
) as _i6.Future<void>);
@override
_i6.Future<void> updateSpace(_i10.Space? space) => (super.noSuchMethod(
Invocation.method(
#updateSpace,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,6 @@ class MockUserStateNotifier extends _i1.Mock implements _i6.UserStateNotifier {
_i5.Future<void> setEmployeeWithSpace({
required _i8.Space? space,
required _i2.Employee? spaceUser,
bool? redirect = true,
}) =>
(super.noSuchMethod(
Invocation.method(
Expand All @@ -170,13 +169,33 @@ class MockUserStateNotifier extends _i1.Mock implements _i6.UserStateNotifier {
{
#space: space,
#spaceUser: spaceUser,
#redirect: redirect,
},
),
returnValue: _i5.Future<void>.value(),
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);
@override
_i5.Future<void> setEmployee({required _i2.Employee? member}) =>
(super.noSuchMethod(
Invocation.method(
#setEmployee,
[],
{#member: member},
),
returnValue: _i5.Future<void>.value(),
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);
@override
_i5.Future<void> setSpace({required _i8.Space? space}) => (super.noSuchMethod(
Invocation.method(
#setSpace,
[],
{#space: space},
),
returnValue: _i5.Future<void>.value(),
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);
@override
_i5.Future<void> updateSpace(_i8.Space? space) => (super.noSuchMethod(
Invocation.method(
#updateSpace,
Expand Down
24 changes: 22 additions & 2 deletions test/unit_test/authentication/login/login_bloc_test.mocks.dart
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,6 @@ class MockUserStateNotifier extends _i1.Mock implements _i10.UserStateNotifier {
_i8.Future<void> setEmployeeWithSpace({
required _i11.Space? space,
required _i6.Employee? spaceUser,
bool? redirect = true,
}) =>
(super.noSuchMethod(
Invocation.method(
Expand All @@ -363,13 +362,34 @@ class MockUserStateNotifier extends _i1.Mock implements _i10.UserStateNotifier {
{
#space: space,
#spaceUser: spaceUser,
#redirect: redirect,
},
),
returnValue: _i8.Future<void>.value(),
returnValueForMissingStub: _i8.Future<void>.value(),
) as _i8.Future<void>);
@override
_i8.Future<void> setEmployee({required _i6.Employee? member}) =>
(super.noSuchMethod(
Invocation.method(
#setEmployee,
[],
{#member: member},
),
returnValue: _i8.Future<void>.value(),
returnValueForMissingStub: _i8.Future<void>.value(),
) as _i8.Future<void>);
@override
_i8.Future<void> setSpace({required _i11.Space? space}) =>
(super.noSuchMethod(
Invocation.method(
#setSpace,
[],
{#space: space},
),
returnValue: _i8.Future<void>.value(),
returnValueForMissingStub: _i8.Future<void>.value(),
) as _i8.Future<void>);
@override
_i8.Future<void> updateSpace(_i11.Space? space) => (super.noSuchMethod(
Invocation.method(
#updateSpace,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,8 @@ void main() {
when(userStateNotifier.employee).thenReturn(employee);
bloc.add(CheckUserStatus());
expectLater(bloc.stream, emits(const UserUpdatedStatus()));
await untilCalled(userStateNotifier.setEmployeeWithSpace(
space: newSpace, spaceUser: employee, redirect: false));
verify(userStateNotifier.setEmployeeWithSpace(
space: newSpace, spaceUser: employee, redirect: false))
.called(1);
await untilCalled(userStateNotifier.setSpace(space: newSpace));
verify(userStateNotifier.setSpace(space: newSpace)).called(1);
});

test('Update user data listen check inactive status', () async {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,6 @@ class MockUserStateNotifier extends _i1.Mock implements _i8.UserStateNotifier {
_i5.Future<void> setEmployeeWithSpace({
required _i7.Space? space,
required _i3.Employee? spaceUser,
bool? redirect = true,
}) =>
(super.noSuchMethod(
Invocation.method(
Expand All @@ -257,13 +256,33 @@ class MockUserStateNotifier extends _i1.Mock implements _i8.UserStateNotifier {
{
#space: space,
#spaceUser: spaceUser,
#redirect: redirect,
},
),
returnValue: _i5.Future<void>.value(),
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);
@override
_i5.Future<void> setEmployee({required _i3.Employee? member}) =>
(super.noSuchMethod(
Invocation.method(
#setEmployee,
[],
{#member: member},
),
returnValue: _i5.Future<void>.value(),
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);
@override
_i5.Future<void> setSpace({required _i7.Space? space}) => (super.noSuchMethod(
Invocation.method(
#setSpace,
[],
{#space: space},
),
returnValue: _i5.Future<void>.value(),
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);
@override
_i5.Future<void> updateSpace(_i7.Space? space) => (super.noSuchMethod(
Invocation.method(
#updateSpace,
Expand Down
Loading

0 comments on commit 6c5ba38

Please sign in to comment.