Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.10.1 generates the mocks in a different order for different devs #157

Closed
bsrz opened this issue Nov 9, 2017 · 3 comments
Closed

0.10.1 generates the mocks in a different order for different devs #157

bsrz opened this issue Nov 9, 2017 · 3 comments

Comments

@bsrz
Copy link

bsrz commented Nov 9, 2017

We are using Cuckoo 0.10.1 with Swift 4.
We have a build phase with the following script:

${PROJECT_DIR}/Carthage/Checkouts/Cuckoo/run generate --no-timestamp --testable "DomainKit" --output "$PROJECT_DIR/$TARGET_NAME/DomainKit.swift" \
"$PROJECT_DIR/DomainKit/AcceptQuoteWithPromoCodeResponse.swift" \
"$PROJECT_DIR/DomainKit/Activity.swift" \
"$PROJECT_DIR/DomainKit/AssetLocalGateway.swift" \
"$PROJECT_DIR/DomainKit/AssetRemoteGateway.swift" \
"$PROJECT_DIR/DomainKit/AuthorizationKey.swift" \
"$PROJECT_DIR/DomainKit/AuthorizationKeyLocalGateway.swift" \
"$PROJECT_DIR/DomainKit/AuthorizationKeyRemoteGateway.swift" \
"$PROJECT_DIR/DomainKit/AutoSuggestLocalGateway.swift" \
"$PROJECT_DIR/DomainKit/AutoSuggestRemoteGateway.swift" \
"$PROJECT_DIR/DomainKit/BillResponse.swift" \
"$PROJECT_DIR/DomainKit/Card.swift" \
"$PROJECT_DIR/DomainKit/CardAction.swift" \
"$PROJECT_DIR/DomainKit/CardImage.swift" \
"$PROJECT_DIR/DomainKit/ChatBotGateway.swift" \
"$PROJECT_DIR/DomainKit/Configuration.swift" \
"$PROJECT_DIR/DomainKit/CrashReporter.swift" \
"$PROJECT_DIR/DomainKit/Credential.swift" \
"$PROJECT_DIR/DomainKit/Definitions.swift" \
"$PROJECT_DIR/DomainKit/DefinitionsRemoteGateway.swift" \
"$PROJECT_DIR/DomainKit/DeviceInfo.swift" \
"$PROJECT_DIR/DomainKit/DomainError.swift" \
"$PROJECT_DIR/DomainKit/EnrichPhoneRemoteGateway.swift" \
"$PROJECT_DIR/DomainKit/GetPromotionSummaryRequest.swift" \
"$PROJECT_DIR/DomainKit/ImageDownloadService.swift" \
"$PROJECT_DIR/DomainKit/Lens.swift" \
"$PROJECT_DIR/DomainKit/LoginError.swift" \
"$PROJECT_DIR/DomainKit/LoginInfo.swift" \
"$PROJECT_DIR/DomainKit/LoginRemoteGateway.swift" \
"$PROJECT_DIR/DomainKit/MarketError.swift" \
"$PROJECT_DIR/DomainKit/MetricsReporter.swift" \
"$PROJECT_DIR/DomainKit/OAuthToken.swift" \
"$PROJECT_DIR/DomainKit/OneTimeUseToken.swift" \
"$PROJECT_DIR/DomainKit/PaymentCardsRemoteGateway.swift" \
"$PROJECT_DIR/DomainKit/PDSError.swift" \
"$PROJECT_DIR/DomainKit/PDSRemoteGateway.swift" \
"$PROJECT_DIR/DomainKit/PKAcquisitionInformation.swift" \
"$PROJECT_DIR/DomainKit/PKAddress.swift" \
"$PROJECT_DIR/DomainKit/PKArea.swift" \
"$PROJECT_DIR/DomainKit/PKArt.swift" \
"$PROJECT_DIR/DomainKit/PKAssemblyInformation.swift" \
"$PROJECT_DIR/DomainKit/PKAsset.swift" \
"$PROJECT_DIR/DomainKit/PKAssetResponse.swift" \
"$PROJECT_DIR/DomainKit/PKAssetRevisionDiff.swift" \
"$PROJECT_DIR/DomainKit/PKAssetRevisionValues.swift" \
"$PROJECT_DIR/DomainKit/PKAssetSearchResult.swift" \
"$PROJECT_DIR/DomainKit/PKAssetSearchResultsResponse.swift" \
"$PROJECT_DIR/DomainKit/PKAssetsResponse.swift" \
"$PROJECT_DIR/DomainKit/PKAuthTokenResult.swift" \
"$PROJECT_DIR/DomainKit/PKAuthenticatedUser.swift" \
"$PROJECT_DIR/DomainKit/PKAuthenticationResult.swift" \
"$PROJECT_DIR/DomainKit/PKBankAccount.swift" \
"$PROJECT_DIR/DomainKit/PKBankAccountDetail.swift" \
"$PROJECT_DIR/DomainKit/PKBill.swift" \
"$PROJECT_DIR/DomainKit/PKBillItem.swift" \
"$PROJECT_DIR/DomainKit/PKBillItemResponse.swift" \
"$PROJECT_DIR/DomainKit/PKBlobAttributes.swift" \
"$PROJECT_DIR/DomainKit/PKBuilding.swift" \
"$PROJECT_DIR/DomainKit/PKCategorizedAssetRevisionDiffs.swift" \
"$PROJECT_DIR/DomainKit/PKCategorizedDatedCurrencies.swift" \
"$PROJECT_DIR/DomainKit/PKCategory.swift" \
"$PROJECT_DIR/DomainKit/PKCategoryAttributes.swift" \
"$PROJECT_DIR/DomainKit/PKClaim.swift" \
"$PROJECT_DIR/DomainKit/PKClaimAssetAmountUpdate.swift" \
"$PROJECT_DIR/DomainKit/PKClaimAssetUpdate.swift" \
"$PROJECT_DIR/DomainKit/PKClaimBankAccountUpdate.swift" \
"$PROJECT_DIR/DomainKit/PKClaimCompanyMessage.swift" \
"$PROJECT_DIR/DomainKit/PKClaimCustomerMessage.swift" \
"$PROJECT_DIR/DomainKit/PKClaimEvent.swift" \
"$PROJECT_DIR/DomainKit/PKClaimExcessPayment.swift" \
"$PROJECT_DIR/DomainKit/PKClaimLocationUpdate.swift" \
"$PROJECT_DIR/DomainKit/PKClaimLossDateUpdate.swift" \
"$PROJECT_DIR/DomainKit/PKClaimNote.swift" \
"$PROJECT_DIR/DomainKit/PKClaimPayable.swift" \
"$PROJECT_DIR/DomainKit/PKClaimPaymentCardUpdate.swift" \
"$PROJECT_DIR/DomainKit/PKClaimPayout.swift" \
"$PROJECT_DIR/DomainKit/PKClaimPhoneNumberUpdate.swift" \
"$PROJECT_DIR/DomainKit/PKClaimPhoto.swift" \
"$PROJECT_DIR/DomainKit/PKClaimPriceOffersResponse.swift" \
"$PROJECT_DIR/DomainKit/PKClaimRequest.swift" \
"$PROJECT_DIR/DomainKit/PKClaimSettlementItemSummary.swift" \
"$PROJECT_DIR/DomainKit/PKClaimSettlementMethodUpdate.swift" \
"$PROJECT_DIR/DomainKit/PKClaimSettlementMethodUpdateRequest.swift" \
"$PROJECT_DIR/DomainKit/PKClaimSettlementSummary.swift" \
"$PROJECT_DIR/DomainKit/PKClaimStatusUpdate.swift" \
"$PROJECT_DIR/DomainKit/PKClaimSummary.swift" \
"$PROJECT_DIR/DomainKit/PKClaimTypeOfLossUpdate.swift" \
"$PROJECT_DIR/DomainKit/PKClaimUpdate.swift" \
"$PROJECT_DIR/DomainKit/PKClaimUpdateRequest.swift" \
"$PROJECT_DIR/DomainKit/PKCommonAttributes.swift" \
"$PROJECT_DIR/DomainKit/PKCoveragePeriod.swift" \
"$PROJECT_DIR/DomainKit/PKCurrency.swift" \
"$PROJECT_DIR/DomainKit/PKCurrencyTypeDetails.swift" \
"$PROJECT_DIR/DomainKit/PKCurrentClaimStatus.swift" \
"$PROJECT_DIR/DomainKit/PKCustomerProfile.swift" \
"$PROJECT_DIR/DomainKit/PKDateRange.swift" \
"$PROJECT_DIR/DomainKit/PKDateTimeRange.swift" \
"$PROJECT_DIR/DomainKit/PKDatedCategorizedAssetRevisionDiffs.swift" \
"$PROJECT_DIR/DomainKit/PKDatedCurrency.swift" \
"$PROJECT_DIR/DomainKit/PKDefinitions.swift" \
"$PROJECT_DIR/DomainKit/PKDisplayQuote.swift" \
"$PROJECT_DIR/DomainKit/PKEmailAccount.swift" \
"$PROJECT_DIR/DomainKit/PKEmailAddress.swift" \
"$PROJECT_DIR/DomainKit/PKEmailProvider.swift" \
"$PROJECT_DIR/DomainKit/PKExternalCategory.swift" \
"$PROJECT_DIR/DomainKit/PKExternalIdentifier.swift" \
"$PROJECT_DIR/DomainKit/PKFileInfo.swift" \
"$PROJECT_DIR/DomainKit/PKFileInfoResponse.swift" \
"$PROJECT_DIR/DomainKit/PKFloor.swift" \
"$PROJECT_DIR/DomainKit/PKGeoLocation.swift" \
"$PROJECT_DIR/DomainKit/PKGeoPoint.swift" \
"$PROJECT_DIR/DomainKit/PKGlobalProfile.swift" \
"$PROJECT_DIR/DomainKit/PKImage.swift" \
"$PROJECT_DIR/DomainKit/PKInsurance.swift" \
"$PROJECT_DIR/DomainKit/PKInsuranceStatus.swift" \
"$PROJECT_DIR/DomainKit/PKKahunaDate.swift" \
"$PROJECT_DIR/DomainKit/PKKahunaEnums.swift" \
"$PROJECT_DIR/DomainKit/PKKahunaExtraEnums.swift" \
"$PROJECT_DIR/DomainKit/PKLocation.swift" \
"$PROJECT_DIR/DomainKit/PKMeasurement.swift" \
"$PROJECT_DIR/DomainKit/PKName.swift" \
"$PROJECT_DIR/DomainKit/PKNextMonthBillItemResponse.swift" \
"$PROJECT_DIR/DomainKit/PKNormalizedAddress.swift" \
"$PROJECT_DIR/DomainKit/PKPayment.swift" \
"$PROJECT_DIR/DomainKit/PKPaymentCard.swift" \
"$PROJECT_DIR/DomainKit/PKPaymentCardUpdateRequest.swift" \
"$PROJECT_DIR/DomainKit/PKPaymentHistoryResponse.swift" \
"$PROJECT_DIR/DomainKit/PKPdsSummaryUriResponse.swift" \
"$PROJECT_DIR/DomainKit/PKPhoneNumber.swift" \
"$PROJECT_DIR/DomainKit/PKPolicy.swift" \
"$PROJECT_DIR/DomainKit/PKPriceOffer.swift" \
"$PROJECT_DIR/DomainKit/PKPriceOfferAcceptedResponse.swift" \
"$PROJECT_DIR/DomainKit/PKPriceOfferPhoto.swift" \
"$PROJECT_DIR/DomainKit/PKPriceOfferResponse.swift" \
"$PROJECT_DIR/DomainKit/PKProduct.swift" \
"$PROJECT_DIR/DomainKit/PKProfile.swift" \
"$PROJECT_DIR/DomainKit/PKProfilePhotos.swift" \
"$PROJECT_DIR/DomainKit/PKPromotion.swift" \
"$PROJECT_DIR/DomainKit/PKPromotionCategory.swift" \
"$PROJECT_DIR/DomainKit/PKPromotionSummary.swift" \
"$PROJECT_DIR/DomainKit/PKPromotionalBillItem.swift" \
"$PROJECT_DIR/DomainKit/PKProperty.swift" \
"$PROJECT_DIR/DomainKit/PKProtectionRequirements.swift" \
"$PROJECT_DIR/DomainKit/PKPublishableKey.swift" \
"$PROJECT_DIR/DomainKit/PKPublishableKeysResponse.swift" \
"$PROJECT_DIR/DomainKit/PKPurchase.swift" \
"$PROJECT_DIR/DomainKit/PKQuoteRequest.swift" \
"$PROJECT_DIR/DomainKit/PKQuoteResponse.swift" \
"$PROJECT_DIR/DomainKit/PKQuoteResponsePriceOffer.swift" \
"$PROJECT_DIR/DomainKit/PKRefreshToken.swift" \
"$PROJECT_DIR/DomainKit/PKRevisionInfo.swift" \
"$PROJECT_DIR/DomainKit/PKStructureDefinition.swift" \
"$PROJECT_DIR/DomainKit/PKSuggestedAsset.swift" \
"$PROJECT_DIR/DomainKit/PKSuggestion.swift" \
"$PROJECT_DIR/DomainKit/PKSuggestionGroup.swift" \
"$PROJECT_DIR/DomainKit/PKSuggestionQuery.swift" \
"$PROJECT_DIR/DomainKit/PKTaxCharge.swift" \
"$PROJECT_DIR/DomainKit/PKToken.swift" \
"$PROJECT_DIR/DomainKit/PKTransferInformation.swift" \
"$PROJECT_DIR/DomainKit/PKUserAccount.swift" \
"$PROJECT_DIR/DomainKit/PKValueInformation.swift" \
"$PROJECT_DIR/DomainKit/PKVehicle.swift" \
"$PROJECT_DIR/DomainKit/PKWine.swift" \
"$PROJECT_DIR/DomainKit/Participant.swift" \
"$PROJECT_DIR/DomainKit/PersistenceConfiguration.swift" \
"$PROJECT_DIR/DomainKit/PromotionAppliedDetails.swift" \
"$PROJECT_DIR/DomainKit/PromotionSummary.swift" \
"$PROJECT_DIR/DomainKit/PromotionalPriceOfferAccepted.swift" \
"$PROJECT_DIR/DomainKit/PromotionalPriceOfferAcceptedResponse.swift" \
"$PROJECT_DIR/DomainKit/QuoteError.swift" \
"$PROJECT_DIR/DomainKit/QuotesRemoteGateway.swift" \
"$PROJECT_DIR/DomainKit/Shims.swift" \

The generated file DomainKit.swift is different for every dev on my team. There doesn't seem to be any order when generating the mocks. More importantly, it is not following the order in which the input files are passed to the script.

@IanKeen
Copy link
Contributor

IanKeen commented Nov 9, 2017

A quick looks makes me think this is the culprit: https://github.com/Brightify/Cuckoo/blob/master/Generator/Source/cuckoo_generator/GenerateMocksCommand.swift#L26

You are using a Set to de-duplicate the input files which will result in an array of undefined order

I'd suggest either a custom de-dupe that maintains the order, or sort the resulting array after de-duplication

@jgavris
Copy link
Contributor

jgavris commented Nov 9, 2017

This is closed now right? @IanKeen if you write 'Closes' or 'Resolves' and the PR number, it will automatically close this issue when the PR is merged.

@TadeasKriz
Copy link
Member

Fixed in 0.10.2!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants