-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathuserDefaultsWrapper.allPRs.test.ts
More file actions
127 lines (105 loc) · 3.56 KB
/
userDefaultsWrapper.allPRs.test.ts
File metadata and controls
127 lines (105 loc) · 3.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
jest.mock("danger", () => jest.fn())
import danger from 'danger'
const dm = danger as any;
import { userDefaultsWrapper } from '../org/allPRs'
beforeEach(() => {
dm.addedLines = ""
dm.fail = jest.fn().mockReturnValue(true);
dm.danger = {
git: {
diffForFile: async (_filename) => {
return { added: dm.addedLines }
},
modified_files: [
"ModifiedFile.swift"
],
created_files: [
"CreatedFile.swift"
]
}
}
})
describe("@UserDefaultsWrapper checks", () => {
it("does not fail with no changes to Swift files", async () => {
dm.danger.git.modified_files = []
await userDefaultsWrapper()
expect(dm.fail).not.toHaveBeenCalled()
})
it("does not fail with no diff in Swift files", async () => {
dm.danger.git.diffForFile = async (_filename) => {}
await userDefaultsWrapper()
expect(dm.fail).not.toHaveBeenCalled()
})
it("does not fail with no additions", async () => {
await userDefaultsWrapper()
expect(dm.fail).not.toHaveBeenCalled()
})
it("does not fail with non-@UserDefaultsWrapper additions", async () => {
dm.addedLines = `
+ let subscription = PrivacyProSubscription(status: .inactive)
+ let isSubscribed: Bool
+ var billingPeriod: String?
+ public let startedAt: Int?
+ internal let expiresOrRenewsAt: Int?
+ private var paymentPlatform: String?
+ let status: String?
`
await userDefaultsWrapper()
expect(dm.fail).not.toHaveBeenCalled()
})
it("does not fail with UserDefaultsWrapper usage additions", async () => {
dm.addedLines = `
+ let userDefaults: UserDefaults = UserDefaultsWrapper<Any>.sharedDefaults
`
await userDefaultsWrapper()
expect(dm.fail).not.toHaveBeenCalled()
})
it("does not fail with commented out @UserDefaultsWrapper additions", async () => {
dm.addedLines = `
+ // @UserDefaultsWrapper(key: .homePageIsFavoriteVisible, defaultValue: true)
`
await userDefaultsWrapper()
expect(dm.fail).not.toHaveBeenCalled()
})
it("fails with @UserDefaultsWrapper additions", async () => {
dm.addedLines = `
+ @UserDefaultsWrapper(key: .homePageIsFavoriteVisible, defaultValue: true)
`
await userDefaultsWrapper()
expect(dm.fail).toHaveBeenCalled()
})
it("fails with @UserDefaultsWrapper additions with open bracket only", async () => {
dm.addedLines = `
+ @UserDefaultsWrapper(
+ key: .homePageIsFavoriteVisible,
+ defaultValue: true
+ )
`
await userDefaultsWrapper()
expect(dm.fail).toHaveBeenCalled()
})
it("fails with @UserDefaultsWrapper additions without parameters", async () => {
dm.addedLines = `
+ @UserDefaultsWrapper
+ private var didCrashDuringCrashHandlersSetUp: Bool
`
await userDefaultsWrapper()
expect(dm.fail).toHaveBeenCalled()
})
it("does not fail with @UserDefaultsWrapper deletions", async () => {
dm.addedLines = `
- @UserDefaultsWrapper
- private var didCrashDuringCrashHandlersSetUp: Bool
-
- @UserDefaultsWrapper(
- key: .homePageIsFavoriteVisible,
- defaultValue: true
- )
-
- @UserDefaultsWrapper(key: .homePageIsFavoriteVisible, defaultValue: true)
- var isFavoriteVisible: Bool
`
await userDefaultsWrapper()
expect(dm.fail).not.toHaveBeenCalled()
})
})