From de52f51a0ad59500ac24992d63a45f0972ee38fe Mon Sep 17 00:00:00 2001 From: jdlugosz963 Date: Sat, 9 Dec 2023 17:22:38 +0100 Subject: Initial commit Generated by react-native@0.73.0 --- ios/cyberbadge_mobileTests/Info.plist | 24 ++++++++ .../cyberbadge_mobileTests.m | 66 ++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 ios/cyberbadge_mobileTests/Info.plist create mode 100644 ios/cyberbadge_mobileTests/cyberbadge_mobileTests.m (limited to 'ios/cyberbadge_mobileTests') diff --git a/ios/cyberbadge_mobileTests/Info.plist b/ios/cyberbadge_mobileTests/Info.plist new file mode 100644 index 0000000..ba72822 --- /dev/null +++ b/ios/cyberbadge_mobileTests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/ios/cyberbadge_mobileTests/cyberbadge_mobileTests.m b/ios/cyberbadge_mobileTests/cyberbadge_mobileTests.m new file mode 100644 index 0000000..f3ff562 --- /dev/null +++ b/ios/cyberbadge_mobileTests/cyberbadge_mobileTests.m @@ -0,0 +1,66 @@ +#import +#import + +#import +#import + +#define TIMEOUT_SECONDS 600 +#define TEXT_TO_LOOK_FOR @"Welcome to React" + +@interface cyberbadge_mobileTests : XCTestCase + +@end + +@implementation cyberbadge_mobileTests + +- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test +{ + if (test(view)) { + return YES; + } + for (UIView *subview in [view subviews]) { + if ([self findSubviewInView:subview matching:test]) { + return YES; + } + } + return NO; +} + +- (void)testRendersWelcomeScreen +{ + UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; + NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; + BOOL foundElement = NO; + + __block NSString *redboxError = nil; +#ifdef DEBUG + RCTSetLogFunction( + ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { + if (level >= RCTLogLevelError) { + redboxError = message; + } + }); +#endif + + while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { + [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + + foundElement = [self findSubviewInView:vc.view + matching:^BOOL(UIView *view) { + if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { + return YES; + } + return NO; + }]; + } + +#ifdef DEBUG + RCTSetLogFunction(RCTDefaultLogFunction); +#endif + + XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); + XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); +} + +@end -- cgit v1.2.3