mirror of
https://github.com/status-im/react-native.git
synced 2025-01-10 09:35:48 +00:00
0c5f279c9d
Summary: public Promises are coming. And as part of it, we are standardizing the error objects that will be returned. This puts the code in place on the Android side to always send the proper error format. It will be an error object like this { code : "E_SOME_ERROR_CODE_DEFINED_BY_MODULE", // Meant to be machine parseable message : "Human readable message", nativeError : {} // Some representation of the underlying error (Exception or NSError) , still figuring out exactly, but hopefully something with stack info } Reviewed By: nicklockwood Differential Revision: D2840128 fb-gh-sync-id: 174d620e2beb53e1fc14161a10fd0479218d98a6
81 lines
2.3 KiB
Objective-C
81 lines
2.3 KiB
Objective-C
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
#import "RCTTestModule.h"
|
|
|
|
#import "FBSnapshotTestController.h"
|
|
#import "RCTAssert.h"
|
|
#import "RCTEventDispatcher.h"
|
|
#import "RCTLog.h"
|
|
#import "RCTUIManager.h"
|
|
|
|
@implementation RCTTestModule
|
|
{
|
|
NSMutableDictionary<NSString *, NSString *> *_snapshotCounter;
|
|
}
|
|
|
|
@synthesize bridge = _bridge;
|
|
|
|
RCT_EXPORT_MODULE()
|
|
|
|
- (dispatch_queue_t)methodQueue
|
|
{
|
|
return _bridge.uiManager.methodQueue;
|
|
}
|
|
|
|
RCT_EXPORT_METHOD(verifySnapshot:(RCTResponseSenderBlock)callback)
|
|
{
|
|
RCTAssert(_controller != nil, @"No snapshot controller configured.");
|
|
|
|
[_bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
|
|
NSString *testName = NSStringFromSelector(_testSelector);
|
|
if (!_snapshotCounter) {
|
|
_snapshotCounter = [NSMutableDictionary new];
|
|
}
|
|
_snapshotCounter[testName] = (@([_snapshotCounter[testName] integerValue] + 1)).stringValue;
|
|
|
|
NSError *error = nil;
|
|
BOOL success = [_controller compareSnapshotOfView:_view
|
|
selector:_testSelector
|
|
identifier:_snapshotCounter[testName]
|
|
error:&error];
|
|
callback(@[@(success)]);
|
|
}];
|
|
}
|
|
|
|
RCT_EXPORT_METHOD(sendAppEvent:(NSString *)name body:(nullable id)body)
|
|
{
|
|
[_bridge.eventDispatcher sendAppEventWithName:name body:body];
|
|
}
|
|
|
|
RCT_REMAP_METHOD(shouldResolve, shouldResolve_resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
{
|
|
resolve(@1);
|
|
}
|
|
|
|
RCT_REMAP_METHOD(shouldReject, shouldReject_resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
{
|
|
reject(nil, nil, nil);
|
|
}
|
|
|
|
RCT_EXPORT_METHOD(markTestCompleted)
|
|
{
|
|
[self markTestPassed:YES];
|
|
}
|
|
|
|
RCT_EXPORT_METHOD(markTestPassed:(BOOL)success)
|
|
{
|
|
[_bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
_status = success ? RCTTestStatusPassed : RCTTestStatusFailed;
|
|
}];
|
|
}
|
|
|
|
@end
|