Skip to content

Commit eace50d

Browse files
committed
tests: make tests compatible with older Android versions
1 parent 2f81b6e commit eace50d

File tree

3 files changed

+43
-24
lines changed

3 files changed

+43
-24
lines changed

demo/app/tests/internal/tasks/schedulers/time-based/android/exact-alarm-perms-manager.android.spec.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { ExactAlarmPermsManager } from "nativescript-task-dispatcher/internal/tasks/schedulers/time-based/android/alarms/exact-alarm-perms-manager.android";
22
import {
33
createOsAlarmManagerMock,
4-
createOsForegroundActivityMock
4+
createOsForegroundActivityMock,
5+
isSdkBelow,
56
} from "~/tests/internal/tasks/schedulers/time-based/android/index";
67
import { createScheduleExactAlarmPermRequestIntent } from "nativescript-task-dispatcher/internal/tasks/schedulers/time-based/android/intents.android";
78
import { Utils } from "@nativescript/core";
@@ -19,30 +20,34 @@ describe("Exact alarm perms manager", () => {
1920
spyOn(foregroundActivityMock, "startActivity");
2021
});
2122

22-
it("checks if schedule exact alarm permission is granted", () => {
23+
it("scheduling exact alarms is allowed by default when api level is lower than 31", () => {
2324
const exactAlarmPermsManager = new ExactAlarmPermsManager(
24-
alarmManagerMock
25+
alarmManagerMock,
26+
30
2527
);
2628

2729
const isGranted = exactAlarmPermsManager.isGranted();
2830

29-
expect(isGranted).toBeFalse();
30-
expect(alarmManagerMock.canScheduleExactAlarms).toHaveBeenCalled();
31+
expect(isGranted).toBeTruthy();
32+
expect(alarmManagerMock.canScheduleExactAlarms).not.toHaveBeenCalled();
3133
});
3234

33-
it("returns true by default when api level is lower than 31", () => {
35+
it("checks if schedule exact alarm permission is granted", () => {
36+
if (isSdkBelow(31)) return;
37+
3438
const exactAlarmPermsManager = new ExactAlarmPermsManager(
35-
alarmManagerMock,
36-
30
39+
alarmManagerMock
3740
);
3841

3942
const isGranted = exactAlarmPermsManager.isGranted();
4043

41-
expect(isGranted).toBeTruthy();
42-
expect(alarmManagerMock.canScheduleExactAlarms).not.toHaveBeenCalled();
44+
expect(isGranted).toBeFalse();
45+
expect(alarmManagerMock.canScheduleExactAlarms).toHaveBeenCalled();
4346
});
4447

4548
it("requests the permission when it has to", () => {
49+
if (isSdkBelow(31)) return;
50+
4651
const exactAlarmPermsManager = new ExactAlarmPermsManager(
4752
alarmManagerMock,
4853
android.os.Build.VERSION.SDK_INT,

demo/app/tests/internal/tasks/schedulers/time-based/android/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,7 @@ export function createOsForegroundActivityMock(): android.app.Activity {
3939

4040
return foregroundActivity as android.app.Activity;
4141
}
42+
43+
export function isSdkBelow(version: number) {
44+
return android && android.os.Build.VERSION.SDK_INT < version;
45+
}

demo/app/tests/internal/tasks/schedulers/time-based/android/power-savings-manager.android.spec.ts

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import { PowerSavingsManager } from "nativescript-task-dispatcher/internal/tasks/schedulers/time-based/android/alarms/power-savings-manager.android";
2-
import {createOsForegroundActivityMock} from "~/tests/internal/tasks/schedulers/time-based/android/index";
3-
import {Utils} from "@nativescript/core";
4-
import {
5-
createSavingsDeactivationIntent
6-
} from "nativescript-task-dispatcher/internal/tasks/schedulers/time-based/android/intents.android";
2+
import { createOsForegroundActivityMock, isSdkBelow } from "./index";
3+
import { Utils } from "@nativescript/core";
4+
import { createSavingsDeactivationIntent } from "nativescript-task-dispatcher/internal/tasks/schedulers/time-based/android/intents.android";
75

86
describe("Power savings manager", () => {
97
if (typeof android === "undefined") {
@@ -14,31 +12,43 @@ describe("Power savings manager", () => {
1412
const foregroundActivityMock = createOsForegroundActivityMock();
1513

1614
beforeEach(() => {
17-
spyOn(powerManagerMock, "isIgnoringBatteryOptimizations").and.returnValue(false);
15+
spyOn(
16+
powerManagerMock,
17+
"isIgnoringBatteryOptimizations"
18+
).and.returnValue(false);
1819
spyOn(foregroundActivityMock, "startActivity");
1920
});
2021

21-
it("checks if power savings are enabled", () => {
22-
const powerSavingsManager = new PowerSavingsManager(powerManagerMock);
22+
it("savings are disabled by default when api level is lower than 23", () => {
23+
const powerSavingsManager = new PowerSavingsManager(
24+
powerManagerMock,
25+
22
26+
);
2327

2428
const areDisabled = powerSavingsManager.areDisabled();
2529

26-
expect(areDisabled).toBeFalse();
30+
expect(areDisabled).toBeTruthy();
2731
expect(
2832
powerManagerMock.isIgnoringBatteryOptimizations
29-
).toHaveBeenCalled();
33+
).not.toHaveBeenCalled();
3034
});
3135

32-
it("returns true by default when api level is lower than 23", () => {
33-
const powerSavingsManager = new PowerSavingsManager(powerManagerMock, 22);
36+
it("checks if power savings are enabled", () => {
37+
if (isSdkBelow(23)) return;
38+
39+
const powerSavingsManager = new PowerSavingsManager(powerManagerMock);
3440

3541
const areDisabled = powerSavingsManager.areDisabled();
3642

37-
expect(areDisabled).toBeTruthy();
38-
expect(powerManagerMock.isIgnoringBatteryOptimizations).not.toHaveBeenCalled();
43+
expect(areDisabled).toBeFalse();
44+
expect(
45+
powerManagerMock.isIgnoringBatteryOptimizations
46+
).toHaveBeenCalled();
3947
});
4048

4149
it("requests to disable savings when it has to", () => {
50+
if (isSdkBelow(23)) return;
51+
4252
const powerSavingsManager = new PowerSavingsManager(
4353
powerManagerMock,
4454
android.os.Build.VERSION.SDK_INT,

0 commit comments

Comments
 (0)