Skip to content

Commit 7af0ecc

Browse files
committed
fix: align variant fixtures with generated specs
1 parent f744b8f commit 7af0ecc

5 files changed

Lines changed: 59 additions & 52 deletions

File tree

example/src/getTests.ts

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,9 +1174,11 @@ export function getTests(
11741174
// @ts-expect-error
11751175
it(() => testObject.bounceVariantUnionEnum({})).didThrow()
11761176
),
1177-
createTest('bounceVariantUnionEnum(...) throws at wrong type (boolean)', () =>
1178-
// @ts-expect-error
1179-
it(() => testObject.bounceVariantUnionEnum(true)).didThrow()
1177+
createTest(
1178+
'bounceVariantUnionEnum(...) throws at wrong type (boolean)',
1179+
() =>
1180+
// @ts-expect-error
1181+
it(() => testObject.bounceVariantUnionEnum(true)).didThrow()
11801182
),
11811183
createTest('getVariantWeirdNumbersEnum(...) converts enum', () =>
11821184
it(() => testObject.getVariantWeirdNumbersEnum(WeirdNumbersEnum.C))
@@ -1261,18 +1263,23 @@ export function getTests(
12611263
testObject.getVariantHybrid({ someValue: 55 })
12621264
).didThrow()
12631265
),
1264-
createTest('getVariantHybridEnum(...) converts Hybrid', () =>
1265-
// @ts-expect-error TypeScript spazzes out since it can be both types of HybridObject
1266-
it(() => testObject.getVariantHybridEnum(testObject))
1267-
.didNotThrow()
1268-
// @ts-expect-error
1269-
.toContain('getVariantHybridEnum')
1270-
),
1271-
createTest('getVariantHybridEnum(...) converts string union enum', () =>
1272-
it(() => testObject.getVariantHybridEnum('electric'))
1273-
.didNotThrow()
1274-
.equals('electric')
1275-
),
1266+
...('getVariantHybridEnum' in testObject
1267+
? [
1268+
createTest('getVariantHybridEnum(...) converts Hybrid', () =>
1269+
it(() => testObject.getVariantHybridEnum(testObject))
1270+
.didNotThrow()
1271+
// @ts-expect-error Assertion typing does not preserve HybridObject keys here.
1272+
.toContain('getVariantHybridEnum')
1273+
),
1274+
createTest(
1275+
'getVariantHybridEnum(...) converts string union enum',
1276+
() =>
1277+
it(() => testObject.getVariantHybridEnum('electric'))
1278+
.didNotThrow()
1279+
.equals('electric')
1280+
),
1281+
]
1282+
: []),
12761283
createTest('passNamedVariant(...) works', () =>
12771284
it(() => testObject.passNamedVariant('Hello world!'))
12781285
.didNotThrow()

packages/react-native-nitro-test/android/src/main/java/com/margelo/nitro/test/HybridTestObjectKotlin.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class HybridTestObjectKotlin : HybridTestObjectSwiftKotlinSpec() {
3030
override var optionalHybrid: HybridTestObjectSwiftKotlinSpec? = null
3131
override val thisObject: HybridTestObjectSwiftKotlinSpec
3232
get() = this
33-
override var someVariant: Variant_String_Double = Variant_String_Double.create(55.05)
33+
override var someVariant: Variant_Double_String = Variant_Double_String.create(55.05)
3434
override var optionalArray: Array<String>? = null
3535
override var optionalEnum: Powertrain? = null
3636
override var optionalOldEnum: OldEnum? = null
@@ -497,13 +497,13 @@ class HybridTestObjectKotlin : HybridTestObjectSwiftKotlinSpec() {
497497
return Promise.async { createArrayBuffer() }
498498
}
499499

500-
override fun passVariant(either: Variant_Boolean_DoubleArray_Array_String__String_Double): Variant_String_Double {
500+
override fun passVariant(either: Variant_Boolean_DoubleArray_Array_String__Double_String): Variant_Double_String {
501501
return either.match(
502-
{ bool -> Variant_String_Double.create("holds something else!") },
503-
{ doubleArray -> Variant_String_Double.create("holds something else!") },
504-
{ stringArray -> Variant_String_Double.create("holds something else!") },
505-
{ string -> Variant_String_Double.create(string) },
506-
{ double -> Variant_String_Double.create(double) },
502+
{ bool -> Variant_Double_String.create("holds something else!") },
503+
{ doubleArray -> Variant_Double_String.create("holds something else!") },
504+
{ stringArray -> Variant_Double_String.create("holds something else!") },
505+
{ double -> Variant_Double_String.create(double) },
506+
{ string -> Variant_Double_String.create(string) },
507507
)
508508
}
509509

@@ -515,19 +515,19 @@ class HybridTestObjectKotlin : HybridTestObjectSwiftKotlinSpec() {
515515
return variant
516516
}
517517

518-
override fun getVariantEnum(variant: Variant_Boolean_OldEnum): Variant_Boolean_OldEnum {
518+
override fun getVariantEnum(variant: Variant_OldEnum_Boolean): Variant_OldEnum_Boolean {
519519
return variant
520520
}
521521

522522
override fun bounceVariantUnionEnum(variant: Variant_Powertrain_Car): Variant_Powertrain_Car {
523523
return variant
524524
}
525525

526-
override fun getVariantWeirdNumbersEnum(variant: Variant_Boolean_WeirdNumbersEnum): Variant_Boolean_WeirdNumbersEnum {
526+
override fun getVariantWeirdNumbersEnum(variant: Variant_WeirdNumbersEnum_Boolean): Variant_WeirdNumbersEnum_Boolean {
527527
return variant
528528
}
529529

530-
override fun getVariantObjects(variant: Variant_Car_Person): Variant_Car_Person {
530+
override fun getVariantObjects(variant: Variant_Person_Car): Variant_Person_Car {
531531
return variant
532532
}
533533

packages/react-native-nitro-test/cpp/HybridTestObjectCpp.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,11 @@ void HybridTestObjectCpp::setOptionalHybrid(const std::optional<std::shared_ptr<
107107
_optionalHybrid = optionalHybrid;
108108
}
109109

110-
std::variant<std::string, double> HybridTestObjectCpp::getSomeVariant() {
110+
std::variant<double, std::string> HybridTestObjectCpp::getSomeVariant() {
111111
return _variant;
112112
}
113113

114-
void HybridTestObjectCpp::setSomeVariant(const std::variant<std::string, double>& variant) {
114+
void HybridTestObjectCpp::setSomeVariant(const std::variant<double, std::string>& variant) {
115115
_variant = variant;
116116
}
117117

@@ -366,8 +366,8 @@ std::chrono::system_clock::time_point HybridTestObjectCpp::currentDate() {
366366
return std::chrono::system_clock::now();
367367
}
368368

369-
std::variant<std::string, double>
370-
HybridTestObjectCpp::passVariant(const std::variant<bool, std::vector<double>, std::vector<std::string>, std::string, double>& either) {
369+
std::variant<double, std::string>
370+
HybridTestObjectCpp::passVariant(const std::variant<bool, std::vector<double>, std::vector<std::string>, double, std::string>& either) {
371371
if (std::holds_alternative<std::string>(either)) {
372372
return std::get<std::string>(either);
373373
} else if (std::holds_alternative<double>(either)) {
@@ -386,19 +386,19 @@ ComplexVariant HybridTestObjectCpp::bounceComplexVariant(const ComplexVariant& v
386386
return variant;
387387
}
388388

389-
std::variant<bool, OldEnum> HybridTestObjectCpp::getVariantEnum(const std::variant<bool, OldEnum>& variant) {
389+
std::variant<OldEnum, bool> HybridTestObjectCpp::getVariantEnum(const std::variant<OldEnum, bool>& variant) {
390390
return variant;
391391
}
392392

393393
std::variant<Powertrain, Car> HybridTestObjectCpp::bounceVariantUnionEnum(const std::variant<Powertrain, Car>& variant) {
394394
return variant;
395395
}
396396

397-
std::variant<bool, WeirdNumbersEnum> HybridTestObjectCpp::getVariantWeirdNumbersEnum(const std::variant<bool, WeirdNumbersEnum>& variant) {
397+
std::variant<WeirdNumbersEnum, bool> HybridTestObjectCpp::getVariantWeirdNumbersEnum(const std::variant<WeirdNumbersEnum, bool>& variant) {
398398
return variant;
399399
}
400400

401-
std::variant<Car, Person> HybridTestObjectCpp::getVariantObjects(const std::variant<Car, Person>& variant) {
401+
std::variant<Person, Car> HybridTestObjectCpp::getVariantObjects(const std::variant<Person, Car>& variant) {
402402
return variant;
403403
}
404404

packages/react-native-nitro-test/cpp/HybridTestObjectCpp.hpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class HybridTestObjectCpp : public HybridTestObjectCppSpec {
3232
NullType _null = nitro::null;
3333
std::optional<std::string> _optionalString;
3434
std::variant<nitro::NullType, std::string> _nullableString;
35-
std::variant<std::string, double> _variant;
35+
std::variant<double, std::string> _variant;
3636
std::tuple<double, std::string> _tuple;
3737
std::optional<std::vector<std::string>> _optionalArray;
3838
std::optional<std::shared_ptr<HybridTestObjectCppSpec>> _optionalHybrid;
@@ -74,8 +74,8 @@ class HybridTestObjectCpp : public HybridTestObjectCppSpec {
7474
void setStringOrNull(const std::variant<nitro::NullType, std::string>& stringOrNull) override;
7575
std::optional<std::vector<std::string>> getOptionalArray() override;
7676
void setOptionalArray(const std::optional<std::vector<std::string>>& optionalArray) override;
77-
std::variant<std::string, double> getSomeVariant() override;
78-
void setSomeVariant(const std::variant<std::string, double>& variant) override;
77+
std::variant<double, std::string> getSomeVariant() override;
78+
void setSomeVariant(const std::variant<double, std::string>& variant) override;
7979
std::variant<std::string, Car> passNamedVariant(const std::variant<std::string, Car>& variant) override;
8080
std::variant<std::shared_ptr<HybridBaseSpec>, OptionalWrapper>
8181
passAllEmptyObjectVariant(const std::variant<std::shared_ptr<HybridBaseSpec>, OptionalWrapper>& variant) override;
@@ -121,8 +121,8 @@ class HybridTestObjectCpp : public HybridTestObjectCppSpec {
121121
bool tryTrailingOptional(double num, const std::string& str, std::optional<bool> boo) override;
122122
std::chrono::system_clock::time_point add1Hour(std::chrono::system_clock::time_point date) override;
123123
std::chrono::system_clock::time_point currentDate() override;
124-
std::variant<std::string, double>
125-
passVariant(const std::variant<bool, std::vector<double>, std::vector<std::string>, std::string, double>& either) override;
124+
std::variant<double, std::string>
125+
passVariant(const std::variant<bool, std::vector<double>, std::vector<std::string>, double, std::string>& either) override;
126126

127127
std::vector<std::string> bounceStrings(const std::vector<std::string>& array) override;
128128
std::vector<double> bounceNumbers(const std::vector<double>& array) override;
@@ -140,10 +140,10 @@ class HybridTestObjectCpp : public HybridTestObjectCppSpec {
140140
std::vector<std::shared_ptr<Promise<double>>> bouncePromises(const std::vector<std::shared_ptr<Promise<double>>>& promises) override;
141141
std::vector<std::shared_ptr<ArrayBuffer>> bounceArrayBuffers(const std::vector<std::shared_ptr<ArrayBuffer>>& arrayBuffers) override;
142142

143-
std::variant<bool, OldEnum> getVariantEnum(const std::variant<bool, OldEnum>& variant) override;
143+
std::variant<OldEnum, bool> getVariantEnum(const std::variant<OldEnum, bool>& variant) override;
144144
std::variant<Powertrain, Car> bounceVariantUnionEnum(const std::variant<Powertrain, Car>& variant) override;
145-
std::variant<bool, WeirdNumbersEnum> getVariantWeirdNumbersEnum(const std::variant<bool, WeirdNumbersEnum>& variant) override;
146-
std::variant<Car, Person> getVariantObjects(const std::variant<Car, Person>& variant) override;
145+
std::variant<WeirdNumbersEnum, bool> getVariantWeirdNumbersEnum(const std::variant<WeirdNumbersEnum, bool>& variant) override;
146+
std::variant<Person, Car> getVariantObjects(const std::variant<Person, Car>& variant) override;
147147
std::variant<std::shared_ptr<HybridTestObjectCppSpec>, Person>
148148
getVariantHybrid(const std::variant<std::shared_ptr<HybridTestObjectCppSpec>, Person>& variant) override;
149149
std::variant<std::shared_ptr<HybridTestObjectCppSpec>, Powertrain>

packages/react-native-nitro-test/ios/HybridTestObjectSwift.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import NitroTestExternal
1111
class HybridTestObjectSwift: HybridTestObjectSwiftKotlinSpec {
1212
var optionalArray: [String]? = []
1313

14-
var someVariant: Variant_String_Double = .second(55)
14+
var someVariant: Variant_Double_String = .first(55)
1515

1616
var numberValue: Double = 0.0
1717

@@ -338,16 +338,16 @@ class HybridTestObjectSwift: HybridTestObjectSwiftKotlinSpec {
338338
return variant
339339
}
340340

341-
func passVariant(either: Variant_Bool__Double___String__String_Double) throws
342-
-> Variant_String_Double
341+
func passVariant(either: Variant_Bool__Double___String__Double_String) throws
342+
-> Variant_Double_String
343343
{
344344
switch either {
345-
case .fourth(let string):
346-
return .first(string)
347-
case .fifth(let double):
348-
return .second(double)
345+
case .fourth(let double):
346+
return .first(double)
347+
case .fifth(let string):
348+
return .second(string)
349349
default:
350-
return .first("holds something else!")
350+
return .second("holds something else!")
351351
}
352352
}
353353

@@ -361,21 +361,21 @@ class HybridTestObjectSwift: HybridTestObjectSwiftKotlinSpec {
361361
return variant
362362
}
363363

364-
func getVariantEnum(variant: Variant_Bool_OldEnum) throws -> Variant_Bool_OldEnum {
364+
func getVariantEnum(variant: Variant_OldEnum_Bool) throws -> Variant_OldEnum_Bool {
365365
return variant
366366
}
367367

368368
func bounceVariantUnionEnum(variant: Variant_Powertrain_Car) throws -> Variant_Powertrain_Car {
369369
return variant
370370
}
371371

372-
func getVariantWeirdNumbersEnum(variant: Variant_Bool_WeirdNumbersEnum) throws
373-
-> Variant_Bool_WeirdNumbersEnum
372+
func getVariantWeirdNumbersEnum(variant: Variant_WeirdNumbersEnum_Bool) throws
373+
-> Variant_WeirdNumbersEnum_Bool
374374
{
375375
return variant
376376
}
377377

378-
func getVariantObjects(variant: Variant_Car_Person) throws -> Variant_Car_Person {
378+
func getVariantObjects(variant: Variant_Person_Car) throws -> Variant_Person_Car {
379379
return variant
380380
}
381381

0 commit comments

Comments
 (0)