Skip to content

Commit 561f25b

Browse files
committed
feat: Update endpoint updateUserSetting agar dibedakan body request-nya berdasarkan nilai isOverrideBlurScreenshot
Sekalian update unit test-nya.
1 parent 34d08fb commit 561f25b

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

lib/feature/data/datasource/setting/setting_remote_data_source.dart

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,17 @@ class SettingRemoteDataSourceImpl implements SettingRemoteDataSource {
145145
@override
146146
Future<bool> updateUserSetting(UserSettingBody body) async {
147147
pathUpdateUserSetting = '$baseUrl/user';
148+
Map<String, dynamic>? data;
149+
if (body.isOverrideBlurScreenshot == null) {
150+
data = {
151+
'data': body.data,
152+
};
153+
} else {
154+
data = body.toJson();
155+
}
148156
final response = await dio.post(
149157
pathUpdateUserSetting,
150-
data: body.toJson(),
158+
data: data,
151159
options: Options(
152160
headers: {
153161
baseUrlConfig.requiredToken: true,

test/feature/data/datasource/setting/setting_remote_data_source_test.dart

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -322,11 +322,15 @@ void main() {
322322
});
323323

324324
group('updateUserSetting', () {
325-
final body = UserSettingBody.fromJson(
325+
final bodyOverride = UserSettingBody.fromJson(
326326
json.decode(
327327
fixture('user_setting_body.json'),
328328
),
329329
);
330+
final bodyOverrideNull = UserSettingBody(
331+
data: [],
332+
isOverrideBlurScreenshot: null,
333+
);
330334
const tPathResponse = 'general_response.json';
331335
const tResponse = true;
332336

@@ -350,7 +354,8 @@ void main() {
350354
setUpMockDioSuccess();
351355

352356
// act
353-
await remoteDataSource.updateUserSetting(body);
357+
await remoteDataSource.updateUserSetting(bodyOverride);
358+
await remoteDataSource.updateUserSetting(bodyOverrideNull);
354359

355360
// assert
356361
verify(mockDio.post('$baseUrl/user', data: anyNamed('data'), options: anyNamed('options')));
@@ -365,7 +370,7 @@ void main() {
365370
setUpMockDioSuccess();
366371

367372
// act
368-
final result = await remoteDataSource.updateUserSetting(body);
373+
final result = await remoteDataSource.updateUserSetting(bodyOverride);
369374

370375
// assert
371376
expect(result, tResponse);
@@ -384,7 +389,7 @@ void main() {
384389
when(mockDio.post(any, data: anyNamed('data'), options: anyNamed('options'))).thenAnswer((_) async => response);
385390

386391
// act
387-
final call = remoteDataSource.updateUserSetting(body);
392+
final call = remoteDataSource.updateUserSetting(bodyOverride);
388393

389394
// assert
390395
expect(() => call, throwsA(const TypeMatcher<DioException>()));

0 commit comments

Comments
 (0)