danger-ikr-xcode_summary 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +1 -0
  3. data/.gitignore +4 -0
  4. data/.rubocop.yml +92 -0
  5. data/.travis.yml +19 -0
  6. data/Gemfile +10 -0
  7. data/Gemfile.lock +173 -0
  8. data/Guardfile +21 -0
  9. data/LICENSE.txt +22 -0
  10. data/README.md +132 -0
  11. data/Rakefile +25 -0
  12. data/danger-xcode_summary.gemspec +48 -0
  13. data/lib/danger_plugin.rb +3 -0
  14. data/lib/danger_xcode_summary.rb +3 -0
  15. data/lib/xcode_summary/gem_version.rb +5 -0
  16. data/lib/xcode_summary/plugin.rb +262 -0
  17. data/spec/fixtures/bitbucket_pr.json +14 -0
  18. data/spec/fixtures/build_error.xcresult/Data/data.0~8rlpy8Zk2MdRSU0KgHQ-dzLsgOGyu-14Vc-N0xpF5NjTgHQgt3Y2C80SFK9G34F8tFCT42Ddo_9fUgkxBW3O9w== +0 -0
  19. data/spec/fixtures/build_error.xcresult/Data/data.0~IRr5bjJHBy3PCL5WuT9beYwr1YJflTZAOvsiw4f8sjvfJO1N516fkBcRW8rzgz3AkdAAidUfmPabPcZq3iarbA== +0 -0
  20. data/spec/fixtures/build_error.xcresult/Data/data.0~M95TCFtTnRKHBi17FlVGNc2kRMfbb_nRcsKPCf3ttPQyiTHHtDZhXhZ7cyeQ_qQ4zMKPS6y7I0oN4BKz0S4Uwg== +1 -0
  21. data/spec/fixtures/build_error.xcresult/Data/data.0~R8E9aNLCgS5_YXRF2Ugae_CaCFKR0ScZt9yP6r7ov-20PVARt7VwmAHWg2P6EBKQXm2TML95dp7BNnz9vunkBw== +0 -0
  22. data/spec/fixtures/build_error.xcresult/Data/data.0~YHIIkYp8-XSCi9oQYeEXZLa8EYpvUizVzEQGN5YmnJtTfJ4ujBdfy2EVAk8cUl8jtQskdFE84I-7eu59N9_pLA== +1 -0
  23. data/spec/fixtures/build_error.xcresult/Data/data.0~oBktD27DLW9QTHTv0MDsoaN2N6qCqZMwiFJeX7RwARc9fFan5V2awd_aThA9ZdCFTmHTSrdRglfQ5-ry9bJBUQ== +0 -0
  24. data/spec/fixtures/build_error.xcresult/Data/data.0~sMF2ys5sALLwuAv5pBXjiul46mqlgymNeLHDD_y99cE5gPqv8vL-IHIBlpnlNYSO4VvKHlaNafxanp-NDJTh-A== +0 -0
  25. data/spec/fixtures/build_error.xcresult/Data/refs.0~8rlpy8Zk2MdRSU0KgHQ-dzLsgOGyu-14Vc-N0xpF5NjTgHQgt3Y2C80SFK9G34F8tFCT42Ddo_9fUgkxBW3O9w== +0 -0
  26. data/spec/fixtures/build_error.xcresult/Data/refs.0~IRr5bjJHBy3PCL5WuT9beYwr1YJflTZAOvsiw4f8sjvfJO1N516fkBcRW8rzgz3AkdAAidUfmPabPcZq3iarbA== +0 -0
  27. data/spec/fixtures/build_error.xcresult/Data/refs.0~M95TCFtTnRKHBi17FlVGNc2kRMfbb_nRcsKPCf3ttPQyiTHHtDZhXhZ7cyeQ_qQ4zMKPS6y7I0oN4BKz0S4Uwg== +0 -0
  28. data/spec/fixtures/build_error.xcresult/Data/refs.0~R8E9aNLCgS5_YXRF2Ugae_CaCFKR0ScZt9yP6r7ov-20PVARt7VwmAHWg2P6EBKQXm2TML95dp7BNnz9vunkBw== +0 -0
  29. data/spec/fixtures/build_error.xcresult/Data/refs.0~YHIIkYp8-XSCi9oQYeEXZLa8EYpvUizVzEQGN5YmnJtTfJ4ujBdfy2EVAk8cUl8jtQskdFE84I-7eu59N9_pLA== +0 -0
  30. data/spec/fixtures/build_error.xcresult/Data/refs.0~oBktD27DLW9QTHTv0MDsoaN2N6qCqZMwiFJeX7RwARc9fFan5V2awd_aThA9ZdCFTmHTSrdRglfQ5-ry9bJBUQ== +0 -0
  31. data/spec/fixtures/build_error.xcresult/Data/refs.0~sMF2ys5sALLwuAv5pBXjiul46mqlgymNeLHDD_y99cE5gPqv8vL-IHIBlpnlNYSO4VvKHlaNafxanp-NDJTh-A== +0 -0
  32. data/spec/fixtures/build_error.xcresult/Info.plist +29 -0
  33. data/spec/fixtures/pr_json.json +8 -0
  34. data/spec/fixtures/swiftlint.xcresult/Data/data.0~0-xWm2AiZ5I3ekRhpAO8g4-GGm1rZIaTIaO2e60GD8nRSProBd-a_Yc1i7HKUd7bcVhfz2trCFFjRoELo2Srsw== +1 -0
  35. data/spec/fixtures/swiftlint.xcresult/Data/data.0~0OZeLqccmhzjAKAPA0eS1xbrEYM0PXX1u6A91vWH_ALTk8ho004_4kSNB9wC5XH28w-WgXxARYsmR5za20WacA== +0 -0
  36. data/spec/fixtures/swiftlint.xcresult/Data/data.0~0S6H6SLQKxWYgRYf_D_1IY-6QHDo-BsTnbSwsmikZV81avlhu5M1VAH-NOUVMY64xcmrqOJTvhE3NuQQTem2Cw== +1 -0
  37. data/spec/fixtures/swiftlint.xcresult/Data/data.0~2kkEPYCm3NJ7Qa1mJdA2u8iJvxvealDfVga3ndyyZs38sQL36q1IX7MYvrKo4eDbd-nyAQ96ZvSgaqpY4LJS1g== +0 -0
  38. data/spec/fixtures/swiftlint.xcresult/Data/data.0~3_PlvRIvUTDBxcDG2Xfka2hgB7TiNgptAFA36_GXRa52Nvcr0scZcjFMT5dD_zIOEF07s48D6roAaO5Fuhqm4A== +0 -0
  39. data/spec/fixtures/swiftlint.xcresult/Data/data.0~4G0wQRF6xQNh3N32d9TJzcahHXtF9nsz9VnT8U0otA3r2iR598yAPi99CNnJ6RdVZdbjKKM5mOz4wlM-xL99GQ== +0 -0
  40. data/spec/fixtures/swiftlint.xcresult/Data/data.0~4ybc14a0wWeJTE6Wyco_E5GMC4AV1uhumwDmYN_qe_Xatx7ngcL09_ef5aIBySSqpNNu4zcclYpHn9GrlNRuFQ== +1 -0
  41. data/spec/fixtures/swiftlint.xcresult/Data/data.0~6gayYzI1pf7Ae5plNUTUjxPN56sJMCVjiFgbL47tofr0MkqR24pCBQ_WR8ObwxOF1d0CMgO6xzegongDrChlJg== +1 -0
  42. data/spec/fixtures/swiftlint.xcresult/Data/data.0~8IYU0zHEOjhUXKlujKg1LRsjykPpzvWzofthV0L5wC4B7k8gHyaZ-7cZuqFSoPtzJazWCx-EKgYEH2IqJWzfEg== +0 -0
  43. data/spec/fixtures/swiftlint.xcresult/Data/data.0~8sQuTfDcyJlc0Fi-_NLh3a8jvYBs_okTaD87IqdKyCzN32fu0jp6ApVWBgFD38xL2_Q87YDxQ6IxUZv7NNvqow== +1 -0
  44. data/spec/fixtures/swiftlint.xcresult/Data/data.0~CJoU5w7TNA2we8IxsH6JLXhJ2Tgwn4MNMGYzl5g5KiXF8gJQm6HlNTnQ1LSu2ISGxTLCQ9g-epXuzLU5utBfFA== +0 -0
  45. data/spec/fixtures/swiftlint.xcresult/Data/data.0~E-76cUuxKNsc00En6QiGIdNWgUkhPKWbzbY-g7Xs1I8QHEMM8XUyKPxeMCp0ZXs_s4n1v1-sgg4Cr_BgvCBB6Q== +1 -0
  46. data/spec/fixtures/swiftlint.xcresult/Data/data.0~ES9w2o-hBWjCbFGFTzMnh3Y8PpOwPGSGtWZ9X9jy-xdmxdZNKNzsKpz5MRG0TSYYKul6Y0HPDMb6NUx1KCvp1g== +0 -0
  47. data/spec/fixtures/swiftlint.xcresult/Data/data.0~H9Ox0jwnLyzNmCS9JM53xW5lgvG9wCoyFrOocfEMniMt9ZomGQCEAkcpEABl2RAkEJrYWhbW_Rrvy0_m93Jnnw== +0 -0
  48. data/spec/fixtures/swiftlint.xcresult/Data/data.0~LCIporNdr1dPYSczSS8zeRwLlf3Cq-xsjXgA0FzrCLqqpRmUcrJDAa5R7STT0lyZeGi2M13jXHyGZ5rZ7qCrrQ== +0 -0
  49. data/spec/fixtures/swiftlint.xcresult/Data/data.0~LpdFNGBXQ0G_AiEBUv6jWVmPykDLvumWlLqe9FOU9Sautm_uAIUhkdYsC3Ai7CHCV6Ec_A9EgLa5dzbuBuSm0Q== +1 -0
  50. data/spec/fixtures/swiftlint.xcresult/Data/data.0~MPQdxkf7R97XmBRC6k_HRasY3Wpzf6Ji9mPhXyPVbkbZreWJ4iOdeDBLCRqR2Jn_ffDNfJCvU4gSl6NdwqltzA== +0 -0
  51. data/spec/fixtures/swiftlint.xcresult/Data/data.0~Mbg926q5J0cd3yItw2ktYihgAmF3Bs3imeg-AgyGMQYnQx0IUUFlnuY3xldjSVaGFNU4N892Usibic6TZXFbTw== +0 -0
  52. data/spec/fixtures/swiftlint.xcresult/Data/data.0~OZKuCYOwI0z3jDNmJQ-bb0OUCKuFWw1iz9Na6m-M3pOyVRqP09YONvdvG1ezCE57EI5b8Ym9g8hX1ZVZJg124w== +1 -0
  53. data/spec/fixtures/swiftlint.xcresult/Data/data.0~P1yCjbYuC-f-Yp5vY3jDumuu5B5U2_SdjxLObNcTH3XZMXTGlY9I20IlZP6UkWOIIPSr4IYewBY82b4sq82ldw== +0 -0
  54. data/spec/fixtures/swiftlint.xcresult/Data/data.0~PgE51YCf92l9xvNpSiVbHOmsnaRpxz_zGezAUjflsYK7nfGH7YRTDdb1jnNn0WlHUlme8-fO8fPQRJ9n51hfPg== +1 -0
  55. data/spec/fixtures/swiftlint.xcresult/Data/data.0~QLGQgkmvGM1G0GFHWwBAJoAn881RCWKI51niXWwchH2k_1ahgBUMANJWO98yUC5HwqptnBQLC0aoD4GE7Zb3Yg== +1 -0
  56. data/spec/fixtures/swiftlint.xcresult/Data/data.0~QdTITudcOZvjswLWT8gvlQMZHVJJ5yA_GP2ZKrevsgAbABDadn3tsrUH4rbPPD0HZeZVi5oDNPTcqoaMnueJ6A== +0 -0
  57. data/spec/fixtures/swiftlint.xcresult/Data/data.0~TNVRLj0efZi3RNElgmBqJ-AnCofs0p8pnjLDsQw2TMFPfg6driapeVvOlnsFyOS_27P7ZHNiLt2xJ9kiE57VlA== +0 -0
  58. data/spec/fixtures/swiftlint.xcresult/Data/data.0~Vo-bwGSGWiUUFgBwAGdskHUHwVQh0q8hYJmYmmyHI4AVhbtLsMeJQyYvHOuTuPmJcJsX_4bDig3Mg1GPwE9oWw== +1 -0
  59. data/spec/fixtures/swiftlint.xcresult/Data/data.0~YBV5ZYd3le3PYE4Xz7kCb4sj6ZJ25X18ArIVKxMOCZHZ479XzQByz07m8qpm3hIL3oUPozbag-zRSomHuRfKLQ== +1 -0
  60. data/spec/fixtures/swiftlint.xcresult/Data/data.0~ZYx73XhABxgrY0rQpAJbZMCn_MDQFCJimII9c-ninClo_0ZErb0fGcXrX-8AkQ_8ngCyX1YyDzb825PzreCLFg== +0 -0
  61. data/spec/fixtures/swiftlint.xcresult/Data/data.0~_Vk-6Z65ePcSA8pCiCFHA53AP-PRZ6KqdEH_Su2CQbd3QM7P-By063lIn7SyLdlE1ENrRCOL_9VFHwb6Q2de4A== +0 -0
  62. data/spec/fixtures/swiftlint.xcresult/Data/data.0~aBrGz65aeXPVqACvo49xELHeqBawlmly6M_SmRa-iT99yzTiBp2st43mhwZEOVIgvsBEHLkKbH5oQpqjWgkueA== +0 -0
  63. data/spec/fixtures/swiftlint.xcresult/Data/data.0~amieE2Vo8zyuqmVg_XehREgJFzuJaWOzAODZVk_7d1g6p6Y_sPmomY580XqThK7-5nyr3Z3ZX8PBps4zPLU86A== +0 -0
  64. data/spec/fixtures/swiftlint.xcresult/Data/data.0~bC3ChphZGxwicYgFPaTJhJvXLOQJmKnAxXU_qdERqu-B1727kHJX61TfzqMUqRiPUwu5E9r_5RH_xoRYJ2L6gQ== +1 -0
  65. data/spec/fixtures/swiftlint.xcresult/Data/data.0~dKm5kNy23i7r5zU946OFV5V5VysbNcVshgmPE1cDjnTybi4d2hDYQHf5DDhl2cd8blicZGSNT1U56_sMCeKgGA== +0 -0
  66. data/spec/fixtures/swiftlint.xcresult/Data/data.0~fOlw5DSt-BTx_3MEsZueO9WvR0v7M_4Qox6aT8izuwPfWLYDmQLCsC3_Hymzu9pvNdnU-hnLmqI7VHwds0tZJg== +0 -0
  67. data/spec/fixtures/swiftlint.xcresult/Data/data.0~fQN-Kpy21p-A8sCOyS-jK7ytWncDa2hFDzVN8GFtbxfcsSDqHuHlelgGVDfMRGaCjl0_YvECcpxkOXMSCMz-yA== +0 -0
  68. data/spec/fixtures/swiftlint.xcresult/Data/data.0~fg_OE_1GIKhnHZVCf6vX3IBffLrmbWUH4AsgsdCfNDOxp0B_FS01mzFt8QUR8SFpl0wzqzGZLqQjyYhO6RevrQ== +1 -0
  69. data/spec/fixtures/swiftlint.xcresult/Data/data.0~gan-cZ22YZhS_xIHkTo3QDwbZPFY4kFjFla450U2lB0YvYEyKbq78RSwEXNISk5oLbXL4hT7MUx_j9YlvordmQ== +0 -0
  70. data/spec/fixtures/swiftlint.xcresult/Data/data.0~gullQKRfJbsVcDBXIhfPjmm5JnaE0Beei-34BEkBv4R4RAuRHQMSnctdI5JXfKywafaWXcpQiYYRa9ukH7dA8w== +0 -0
  71. data/spec/fixtures/swiftlint.xcresult/Data/data.0~ifHHINpGjhER45qG-5imtXxa30gPYyHpFGHLw-i9F-M4nTjIGxvHkfprtACth9aAoeu7xyBFp9i0NZuPFaK-qQ== +0 -0
  72. data/spec/fixtures/swiftlint.xcresult/Data/data.0~j4nemHY9VBZOlHsEur0YydlrsprTU9r-MZEFaCsZ71qzr_Y2j_wX_zeb8BIyCfQq6WCHDuJGwCvDxYGxFHFKJQ== +1 -0
  73. data/spec/fixtures/swiftlint.xcresult/Data/data.0~jLNWr6BK3vDe2KRCbTLDhymPjtRFa0UT1BKEjXSbv29IXEwjhP4bUKt6LMUdkCtM4FvPlQ8z7YOpAYFoZFSPOA== +0 -0
  74. data/spec/fixtures/swiftlint.xcresult/Data/data.0~jLxEh4TDlOXovDeeA90ahrPFfK6KWCWAM1RveDzpglwOI01s2gFfzKcZ5uuMA4PDXedeCvNf2DqCdKJIcgHnVQ== +1 -0
  75. data/spec/fixtures/swiftlint.xcresult/Data/data.0~lDipbRFZoMGAPyIHXNVPjW96huFRLV5fDc8iChQGTp2D1rW9Y3yat6jqgAUFtF94uKKChvQXQU2YOrKELWTWRQ== +0 -0
  76. data/spec/fixtures/swiftlint.xcresult/Data/data.0~m1Fg2athRJukt11SG2HxPjSj8K7CqPcdkSiJSNtxUGsVPezdEjZT_PPnBkROObmplPJ7SQmO9ccwDfGagdcKLg== +0 -0
  77. data/spec/fixtures/swiftlint.xcresult/Data/data.0~oRMi0sbQLktfDDDGUS-SqBKpdDiD6HCztVES_ShfGr0KVcYENoIq7y9oUSDWL5B_P2gkdtWG8JEsJLxPbdWOZA== +0 -0
  78. data/spec/fixtures/swiftlint.xcresult/Data/data.0~oRai0E4F38qqrWTBu_VggauLdzUNvBJ9uOpjjW4rdru1cdBUSmJsWp7wGRoTaegMas7lrFfF7hqYW76UAkN_Aw== +1 -0
  79. data/spec/fixtures/swiftlint.xcresult/Data/data.0~oc4kwngaTuUPiuwoua8qsQolC7-ZoEhH98wttJsSLjXvqDEIcMSdd0Y06IcfLovOve5P5sgs01gVV9FxgA9Cgg== +0 -0
  80. data/spec/fixtures/swiftlint.xcresult/Data/data.0~pfWL_0E_rKWkISZ_-ykT-jtTq0T1Bs4pRoI0Rvd1L48EF2pJwep6TzEd_f2AXvlBLDYPKU_8b0hRyDco495MuA== +0 -0
  81. data/spec/fixtures/swiftlint.xcresult/Data/data.0~qvKb6_pMbXLkop24YkPLBvBGPB0vTCJVE1x5_F3lvNeXSrkS-aTEVLcbm50ypOEDTvq5lWbE3WCTmiwTrycTtA== +1 -0
  82. data/spec/fixtures/swiftlint.xcresult/Data/data.0~rWtEuNODRlqS4h5IKE2daTjC3jn_FFVbc5AFmP9pWRCMe5Pnl26q-RtgyD_RKEch9v3KhAMX6v_o_6tAvVJqCA== +0 -0
  83. data/spec/fixtures/swiftlint.xcresult/Data/data.0~ryOJ0LA52DIkg1NBt38A9g4laq_cWjst7WaY2GqaYbfcPtErYNGwwseRWOUJ888fdbPpei28zwb3FQmyyY0P7A== +1 -0
  84. data/spec/fixtures/swiftlint.xcresult/Data/data.0~ufMI-FnN2y3q-eI9BtVFtGpA8_fkrqmtH5a6cmoMsFqJdZ7LAFu1X1f-KhV78VbCx3NJFw-Z37YrEEheJ0aoew== +0 -0
  85. data/spec/fixtures/swiftlint.xcresult/Data/data.0~vFXD8mGF6_qQ0OnB0Wcon_YnvTiD4pn7MUywowp2zOVLErpHH1Ub9F67rFgJUj5qH44PC8HGhivGatweCwtA1g== +0 -0
  86. data/spec/fixtures/swiftlint.xcresult/Data/data.0~xgcJ3zOq4tRMu41EmxgQwt9WxpLQm2v2wbY1e8CAQ8EEYhNYnBcMTAFjYWFgIg4LKguSsH1Djbu9dtiDJ6ZXww== +1 -0
  87. data/spec/fixtures/swiftlint.xcresult/Data/data.0~ygm24RJKzu1R3AxMJebgBRXDXv1XqRs_UZUYB9XNRQlwNRqHlLdmUDM2A0c5MZ0rM9Rzk8J6DVpUtgbXCqdEig== +1 -0
  88. data/spec/fixtures/swiftlint.xcresult/Data/data.0~z0TKqUleKKN7fLZIVvFv3iQkQDn9im3HWNWKHBCNC0CrWtbKyMM79u3yFkfV0iz5I-pyszXp3C532_0QdYPUlA== +0 -0
  89. data/spec/fixtures/swiftlint.xcresult/Data/data.0~zs6Rgx87_LJyVnCSv0mqZMG6J9lpsTcTg9rpJsB_IBDSH2MQBeY5mGj-C3dLPzD8HFtKiumJ9EcGo-mGYqnZvQ== +0 -0
  90. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~0-xWm2AiZ5I3ekRhpAO8g4-GGm1rZIaTIaO2e60GD8nRSProBd-a_Yc1i7HKUd7bcVhfz2trCFFjRoELo2Srsw== +0 -0
  91. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~0OZeLqccmhzjAKAPA0eS1xbrEYM0PXX1u6A91vWH_ALTk8ho004_4kSNB9wC5XH28w-WgXxARYsmR5za20WacA== +0 -0
  92. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~0S6H6SLQKxWYgRYf_D_1IY-6QHDo-BsTnbSwsmikZV81avlhu5M1VAH-NOUVMY64xcmrqOJTvhE3NuQQTem2Cw== +0 -0
  93. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~2kkEPYCm3NJ7Qa1mJdA2u8iJvxvealDfVga3ndyyZs38sQL36q1IX7MYvrKo4eDbd-nyAQ96ZvSgaqpY4LJS1g== +0 -0
  94. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~3_PlvRIvUTDBxcDG2Xfka2hgB7TiNgptAFA36_GXRa52Nvcr0scZcjFMT5dD_zIOEF07s48D6roAaO5Fuhqm4A== +0 -0
  95. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~4G0wQRF6xQNh3N32d9TJzcahHXtF9nsz9VnT8U0otA3r2iR598yAPi99CNnJ6RdVZdbjKKM5mOz4wlM-xL99GQ== +0 -0
  96. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~4ybc14a0wWeJTE6Wyco_E5GMC4AV1uhumwDmYN_qe_Xatx7ngcL09_ef5aIBySSqpNNu4zcclYpHn9GrlNRuFQ== +0 -0
  97. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~6gayYzI1pf7Ae5plNUTUjxPN56sJMCVjiFgbL47tofr0MkqR24pCBQ_WR8ObwxOF1d0CMgO6xzegongDrChlJg== +0 -0
  98. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~8IYU0zHEOjhUXKlujKg1LRsjykPpzvWzofthV0L5wC4B7k8gHyaZ-7cZuqFSoPtzJazWCx-EKgYEH2IqJWzfEg== +0 -0
  99. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~8sQuTfDcyJlc0Fi-_NLh3a8jvYBs_okTaD87IqdKyCzN32fu0jp6ApVWBgFD38xL2_Q87YDxQ6IxUZv7NNvqow== +0 -0
  100. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~CJoU5w7TNA2we8IxsH6JLXhJ2Tgwn4MNMGYzl5g5KiXF8gJQm6HlNTnQ1LSu2ISGxTLCQ9g-epXuzLU5utBfFA== +0 -0
  101. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~E-76cUuxKNsc00En6QiGIdNWgUkhPKWbzbY-g7Xs1I8QHEMM8XUyKPxeMCp0ZXs_s4n1v1-sgg4Cr_BgvCBB6Q== +0 -0
  102. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~ES9w2o-hBWjCbFGFTzMnh3Y8PpOwPGSGtWZ9X9jy-xdmxdZNKNzsKpz5MRG0TSYYKul6Y0HPDMb6NUx1KCvp1g== +0 -0
  103. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~H9Ox0jwnLyzNmCS9JM53xW5lgvG9wCoyFrOocfEMniMt9ZomGQCEAkcpEABl2RAkEJrYWhbW_Rrvy0_m93Jnnw== +0 -0
  104. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~LCIporNdr1dPYSczSS8zeRwLlf3Cq-xsjXgA0FzrCLqqpRmUcrJDAa5R7STT0lyZeGi2M13jXHyGZ5rZ7qCrrQ== +0 -0
  105. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~LpdFNGBXQ0G_AiEBUv6jWVmPykDLvumWlLqe9FOU9Sautm_uAIUhkdYsC3Ai7CHCV6Ec_A9EgLa5dzbuBuSm0Q== +0 -0
  106. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~MPQdxkf7R97XmBRC6k_HRasY3Wpzf6Ji9mPhXyPVbkbZreWJ4iOdeDBLCRqR2Jn_ffDNfJCvU4gSl6NdwqltzA== +0 -0
  107. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~Mbg926q5J0cd3yItw2ktYihgAmF3Bs3imeg-AgyGMQYnQx0IUUFlnuY3xldjSVaGFNU4N892Usibic6TZXFbTw== +0 -0
  108. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~OZKuCYOwI0z3jDNmJQ-bb0OUCKuFWw1iz9Na6m-M3pOyVRqP09YONvdvG1ezCE57EI5b8Ym9g8hX1ZVZJg124w== +0 -0
  109. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~P1yCjbYuC-f-Yp5vY3jDumuu5B5U2_SdjxLObNcTH3XZMXTGlY9I20IlZP6UkWOIIPSr4IYewBY82b4sq82ldw== +0 -0
  110. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~PgE51YCf92l9xvNpSiVbHOmsnaRpxz_zGezAUjflsYK7nfGH7YRTDdb1jnNn0WlHUlme8-fO8fPQRJ9n51hfPg== +0 -0
  111. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~QLGQgkmvGM1G0GFHWwBAJoAn881RCWKI51niXWwchH2k_1ahgBUMANJWO98yUC5HwqptnBQLC0aoD4GE7Zb3Yg== +0 -0
  112. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~QdTITudcOZvjswLWT8gvlQMZHVJJ5yA_GP2ZKrevsgAbABDadn3tsrUH4rbPPD0HZeZVi5oDNPTcqoaMnueJ6A== +0 -0
  113. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~TNVRLj0efZi3RNElgmBqJ-AnCofs0p8pnjLDsQw2TMFPfg6driapeVvOlnsFyOS_27P7ZHNiLt2xJ9kiE57VlA== +0 -0
  114. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~Vo-bwGSGWiUUFgBwAGdskHUHwVQh0q8hYJmYmmyHI4AVhbtLsMeJQyYvHOuTuPmJcJsX_4bDig3Mg1GPwE9oWw== +0 -0
  115. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~YBV5ZYd3le3PYE4Xz7kCb4sj6ZJ25X18ArIVKxMOCZHZ479XzQByz07m8qpm3hIL3oUPozbag-zRSomHuRfKLQ== +0 -0
  116. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~ZYx73XhABxgrY0rQpAJbZMCn_MDQFCJimII9c-ninClo_0ZErb0fGcXrX-8AkQ_8ngCyX1YyDzb825PzreCLFg== +0 -0
  117. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~_Vk-6Z65ePcSA8pCiCFHA53AP-PRZ6KqdEH_Su2CQbd3QM7P-By063lIn7SyLdlE1ENrRCOL_9VFHwb6Q2de4A== +0 -0
  118. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~aBrGz65aeXPVqACvo49xELHeqBawlmly6M_SmRa-iT99yzTiBp2st43mhwZEOVIgvsBEHLkKbH5oQpqjWgkueA== +0 -0
  119. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~amieE2Vo8zyuqmVg_XehREgJFzuJaWOzAODZVk_7d1g6p6Y_sPmomY580XqThK7-5nyr3Z3ZX8PBps4zPLU86A== +0 -0
  120. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~bC3ChphZGxwicYgFPaTJhJvXLOQJmKnAxXU_qdERqu-B1727kHJX61TfzqMUqRiPUwu5E9r_5RH_xoRYJ2L6gQ== +0 -0
  121. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~dKm5kNy23i7r5zU946OFV5V5VysbNcVshgmPE1cDjnTybi4d2hDYQHf5DDhl2cd8blicZGSNT1U56_sMCeKgGA== +0 -0
  122. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~fOlw5DSt-BTx_3MEsZueO9WvR0v7M_4Qox6aT8izuwPfWLYDmQLCsC3_Hymzu9pvNdnU-hnLmqI7VHwds0tZJg== +0 -0
  123. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~fQN-Kpy21p-A8sCOyS-jK7ytWncDa2hFDzVN8GFtbxfcsSDqHuHlelgGVDfMRGaCjl0_YvECcpxkOXMSCMz-yA== +0 -0
  124. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~fg_OE_1GIKhnHZVCf6vX3IBffLrmbWUH4AsgsdCfNDOxp0B_FS01mzFt8QUR8SFpl0wzqzGZLqQjyYhO6RevrQ== +0 -0
  125. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~gan-cZ22YZhS_xIHkTo3QDwbZPFY4kFjFla450U2lB0YvYEyKbq78RSwEXNISk5oLbXL4hT7MUx_j9YlvordmQ== +0 -0
  126. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~gullQKRfJbsVcDBXIhfPjmm5JnaE0Beei-34BEkBv4R4RAuRHQMSnctdI5JXfKywafaWXcpQiYYRa9ukH7dA8w== +0 -0
  127. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~ifHHINpGjhER45qG-5imtXxa30gPYyHpFGHLw-i9F-M4nTjIGxvHkfprtACth9aAoeu7xyBFp9i0NZuPFaK-qQ== +0 -0
  128. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~j4nemHY9VBZOlHsEur0YydlrsprTU9r-MZEFaCsZ71qzr_Y2j_wX_zeb8BIyCfQq6WCHDuJGwCvDxYGxFHFKJQ== +0 -0
  129. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~jLNWr6BK3vDe2KRCbTLDhymPjtRFa0UT1BKEjXSbv29IXEwjhP4bUKt6LMUdkCtM4FvPlQ8z7YOpAYFoZFSPOA== +0 -0
  130. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~jLxEh4TDlOXovDeeA90ahrPFfK6KWCWAM1RveDzpglwOI01s2gFfzKcZ5uuMA4PDXedeCvNf2DqCdKJIcgHnVQ== +0 -0
  131. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~lDipbRFZoMGAPyIHXNVPjW96huFRLV5fDc8iChQGTp2D1rW9Y3yat6jqgAUFtF94uKKChvQXQU2YOrKELWTWRQ== +0 -0
  132. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~m1Fg2athRJukt11SG2HxPjSj8K7CqPcdkSiJSNtxUGsVPezdEjZT_PPnBkROObmplPJ7SQmO9ccwDfGagdcKLg== +0 -0
  133. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~oRMi0sbQLktfDDDGUS-SqBKpdDiD6HCztVES_ShfGr0KVcYENoIq7y9oUSDWL5B_P2gkdtWG8JEsJLxPbdWOZA== +0 -0
  134. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~oRai0E4F38qqrWTBu_VggauLdzUNvBJ9uOpjjW4rdru1cdBUSmJsWp7wGRoTaegMas7lrFfF7hqYW76UAkN_Aw== +0 -0
  135. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~oc4kwngaTuUPiuwoua8qsQolC7-ZoEhH98wttJsSLjXvqDEIcMSdd0Y06IcfLovOve5P5sgs01gVV9FxgA9Cgg== +0 -0
  136. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~pfWL_0E_rKWkISZ_-ykT-jtTq0T1Bs4pRoI0Rvd1L48EF2pJwep6TzEd_f2AXvlBLDYPKU_8b0hRyDco495MuA== +0 -0
  137. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~qvKb6_pMbXLkop24YkPLBvBGPB0vTCJVE1x5_F3lvNeXSrkS-aTEVLcbm50ypOEDTvq5lWbE3WCTmiwTrycTtA== +0 -0
  138. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~rWtEuNODRlqS4h5IKE2daTjC3jn_FFVbc5AFmP9pWRCMe5Pnl26q-RtgyD_RKEch9v3KhAMX6v_o_6tAvVJqCA== +0 -0
  139. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~ryOJ0LA52DIkg1NBt38A9g4laq_cWjst7WaY2GqaYbfcPtErYNGwwseRWOUJ888fdbPpei28zwb3FQmyyY0P7A== +0 -0
  140. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~ufMI-FnN2y3q-eI9BtVFtGpA8_fkrqmtH5a6cmoMsFqJdZ7LAFu1X1f-KhV78VbCx3NJFw-Z37YrEEheJ0aoew== +0 -0
  141. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~vFXD8mGF6_qQ0OnB0Wcon_YnvTiD4pn7MUywowp2zOVLErpHH1Ub9F67rFgJUj5qH44PC8HGhivGatweCwtA1g== +0 -0
  142. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~xgcJ3zOq4tRMu41EmxgQwt9WxpLQm2v2wbY1e8CAQ8EEYhNYnBcMTAFjYWFgIg4LKguSsH1Djbu9dtiDJ6ZXww== +0 -0
  143. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~ygm24RJKzu1R3AxMJebgBRXDXv1XqRs_UZUYB9XNRQlwNRqHlLdmUDM2A0c5MZ0rM9Rzk8J6DVpUtgbXCqdEig== +0 -0
  144. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~z0TKqUleKKN7fLZIVvFv3iQkQDn9im3HWNWKHBCNC0CrWtbKyMM79u3yFkfV0iz5I-pyszXp3C532_0QdYPUlA== +0 -0
  145. data/spec/fixtures/swiftlint.xcresult/Data/refs.0~zs6Rgx87_LJyVnCSv0mqZMG6J9lpsTcTg9rpJsB_IBDSH2MQBeY5mGj-C3dLPzD8HFtKiumJ9EcGo-mGYqnZvQ== +0 -0
  146. data/spec/fixtures/swiftlint.xcresult/Info.plist +29 -0
  147. data/spec/spec_helper.rb +82 -0
  148. data/spec/xcode_summary_spec.rb +213 -0
  149. metadata +451 -0
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>dateCreated</key>
6
+ <date>2019-09-27T03:04:10Z</date>
7
+ <key>externalLocations</key>
8
+ <array/>
9
+ <key>rootId</key>
10
+ <dict>
11
+ <key>hash</key>
12
+ <string>0~aBrGz65aeXPVqACvo49xELHeqBawlmly6M_SmRa-iT99yzTiBp2st43mhwZEOVIgvsBEHLkKbH5oQpqjWgkueA==</string>
13
+ </dict>
14
+ <key>storage</key>
15
+ <dict>
16
+ <key>backend</key>
17
+ <string>fileBacked2</string>
18
+ <key>compression</key>
19
+ <string>standard</string>
20
+ </dict>
21
+ <key>version</key>
22
+ <dict>
23
+ <key>major</key>
24
+ <integer>3</integer>
25
+ <key>minor</key>
26
+ <integer>21</integer>
27
+ </dict>
28
+ </dict>
29
+ </plist>
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'pathname'
4
+ ROOT = Pathname.new(File.expand_path('..', __dir__))
5
+ $LOAD_PATH.unshift("#{ROOT}lib".to_s)
6
+ $LOAD_PATH.unshift("#{ROOT}spec".to_s)
7
+
8
+ require 'bundler/setup'
9
+ require 'pry'
10
+
11
+ require 'rspec'
12
+ require 'danger'
13
+
14
+ require 'danger_plugin'
15
+
16
+ # Use coloured output, it's the best.
17
+ RSpec.configure do |config|
18
+ config.filter_gems_from_backtrace 'bundler'
19
+ config.color = true
20
+ config.tty = true
21
+ config.expect_with :rspec do |c|
22
+ c.max_formatted_output_length = nil # n is number of lines, or nil for no truncation.
23
+ end
24
+ end
25
+
26
+ # These functions are a subset of https://github.com/danger/danger/blob/master/spec/spec_helper.rb
27
+ # If you are expanding these files, see if it's already been done ^.
28
+
29
+ # A silent version of the user interface,
30
+ # it comes with an extra function `.string` which will
31
+ # strip all ANSI colours from the string.
32
+
33
+ # rubocop:disable Lint/NestedMethodDefinition
34
+ def testing_ui
35
+ @output = StringIO.new
36
+ def @output.winsize
37
+ [20, 9999]
38
+ end
39
+
40
+ cork = Cork::Board.new(out: @output)
41
+ def cork.string
42
+ out.string.gsub(/\e\[([;\d]+)?m/, '')
43
+ end
44
+ cork
45
+ end
46
+ # rubocop:enable Lint/NestedMethodDefinition
47
+
48
+ # Example environment (ENV) that would come from
49
+ # running a PR on TravisCI
50
+ def testing_env
51
+ {
52
+ 'HAS_JOSH_K_SEAL_OF_APPROVAL' => 'true',
53
+ 'TRAVIS_PULL_REQUEST' => '800',
54
+ 'TRAVIS_REPO_SLUG' => 'artsy/eigen',
55
+ 'TRAVIS_COMMIT_RANGE' => '759adcbd0d8f...13c4dc8bb61d',
56
+ 'DANGER_GITHUB_API_TOKEN' => '123sbdq54erfsd3422gdfio'
57
+ }
58
+ end
59
+
60
+ def testing_bitbucket_env
61
+ {
62
+ 'GIT_URL' => 'https://github.com/diogot/danger-xcode_summary.git',
63
+ 'CHANGE_ID' => '4d4c0f31857e3185b51b6865a0700525bc0cb2bb',
64
+ 'JENKINS_URL' => 'http://jenkins.server.com/',
65
+ 'DANGER_BITBUCKETCLOUD_USERNAME' => 'username',
66
+ 'DANGER_BITBUCKETCLOUD_PASSWORD' => 'password',
67
+ 'DANGER_BITBUCKETCLOUD_UUID' => 'c91be865-efc6-49a6-93c5-24e1267c479b',
68
+ 'ghprbPullId' => '2080'
69
+ }
70
+ end
71
+
72
+ # A stubbed out Dangerfile for use in tests
73
+ def testing_dangerfile
74
+ env = Danger::EnvironmentManager.new(testing_env)
75
+ Danger::Dangerfile.new(env, testing_ui)
76
+ end
77
+
78
+ # A stubbed out Dangerfile with Bitbucket as a request_source for use in tests
79
+ def testing_bitbucket_dangerfile
80
+ env = Danger::EnvironmentManager.new(testing_bitbucket_env)
81
+ Danger::Dangerfile.new(env, testing_ui)
82
+ end
@@ -0,0 +1,213 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Layout/LineLength
4
+
5
+ require File.expand_path('spec_helper', __dir__)
6
+
7
+ module Danger
8
+ describe Danger::DangerXcodeSummary do
9
+ it 'should be a plugin' do
10
+ expect(Danger::DangerXcodeSummary.new(nil)).to be_a Danger::Plugin
11
+ end
12
+
13
+ describe 'with Dangerfile' do
14
+ before do
15
+ @dangerfile = testing_dangerfile
16
+ @xcode_summary = @dangerfile.xcode_summary
17
+ @xcode_summary.env.request_source.pr_json = JSON.parse(File.read('spec/fixtures/pr_json.json'))
18
+ @xcode_summary.project_root = '/Users/marcelofabri/SwiftLint/'
19
+ end
20
+
21
+ it 'fail if file does not exist' do
22
+ @xcode_summary.report('spec/fixtures/inexistent_file.xcresult')
23
+ expect(@dangerfile.status_report[:errors]).to eq ['summary file not found']
24
+ end
25
+
26
+ context 'reporting' do
27
+ it 'formats compile warnings' do
28
+ @xcode_summary.report('spec/fixtures/swiftlint.xcresult')
29
+ expect(@dangerfile.status_report[:warnings]).to eq [
30
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Sources/Yams/Tag.swift#L88'>Carthage/Checkouts/Yams/Sources/Yams/Tag.swift#L88</a>**: Legacy Hashing Violation: Prefer using the `hash(into:)` function instead of overriding `hashValue` (legacy_hashing)",
31
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Sources/Yams/Tag.swift#L109'>Carthage/Checkouts/Yams/Sources/Yams/Tag.swift#L109</a>**: Legacy Hashing Violation: Prefer using the `hash(into:)` function instead of overriding `hashValue` (legacy_hashing)",
32
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Sources/Yams/Decoder.swift#L102'>Carthage/Checkouts/Yams/Sources/Yams/Decoder.swift#L102</a>**: Colon Violation: Colons should be next to the identifier when specifying a type and next to the key in dictionary literals. (colon)",
33
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Sources/Yams/Node.swift#L191'>Carthage/Checkouts/Yams/Sources/Yams/Node.swift#L191</a>**: Legacy Hashing Violation: Prefer using the `hash(into:)` function instead of overriding `hashValue` (legacy_hashing)",
34
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Sources/Yams/Representer.swift#L187'>Carthage/Checkouts/Yams/Sources/Yams/Representer.swift#L187</a>**: Todo Violation: TODOs should be resolved (Support `Float80`). (todo)",
35
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Sources/Yams/Encoder.swift#L139'>Carthage/Checkouts/Yams/Sources/Yams/Encoder.swift#L139</a>**: Colon Violation: Colons should be next to the identifier when specifying a type and next to the key in dictionary literals. (colon)",
36
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Sources/Yams/Parser.swift#L441'>Carthage/Checkouts/Yams/Sources/Yams/Parser.swift#L441</a>**: File Line Length Violation: File should contain 400 lines or less: currently contains 441 (file_length)",
37
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Sources/Yams/Constructor.swift#L405'>Carthage/Checkouts/Yams/Sources/Yams/Constructor.swift#L405</a>**: Todo Violation: TODOs should be resolved (YAML supports keys other than ...). (todo)",
38
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Sources/Yams/Constructor.swift#L430'>Carthage/Checkouts/Yams/Sources/Yams/Constructor.swift#L430</a>**: Todo Violation: TODOs should be resolved (Should raise error on other th...). (todo)",
39
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Sources/Yams/Constructor.swift#L450'>Carthage/Checkouts/Yams/Sources/Yams/Constructor.swift#L450</a>**: Todo Violation: TODOs should be resolved (YAML supports Hashable element...). (todo)",
40
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Sources/Yams/Constructor.swift#L478'>Carthage/Checkouts/Yams/Sources/Yams/Constructor.swift#L478</a>**: Todo Violation: TODOs should be resolved (Should raise error if subnode ...). (todo)",
41
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Sources/Yams/Constructor.swift#L492'>Carthage/Checkouts/Yams/Sources/Yams/Constructor.swift#L492</a>**: Todo Violation: TODOs should be resolved (Should raise error if subnode ...). (todo)",
42
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Sources/Yams/Emitter.swift#L340'>Carthage/Checkouts/Yams/Sources/Yams/Emitter.swift#L340</a>**: Todo Violation: TODOs should be resolved (Support tags). (todo)",
43
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Tests/YamsTests/SpecTests.swift#L379'>Carthage/Checkouts/Yams/Tests/YamsTests/SpecTests.swift#L379</a>**: Todo Violation: TODOs should be resolved (YAML supports keys other than ...). (todo)",
44
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Tests/YamsTests/SpecTests.swift#L714'>Carthage/Checkouts/Yams/Tests/YamsTests/SpecTests.swift#L714</a>**: Todo Violation: TODOs should be resolved (local tag parsing). (todo)",
45
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Tests/YamsTests/EncoderTests.swift#L924'>Carthage/Checkouts/Yams/Tests/YamsTests/EncoderTests.swift#L924</a>**: Colon Violation: Colons should be next to the identifier when specifying a type and next to the key in dictionary literals. (colon)",
46
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Tests/YamsTests/EncoderTests.swift#L937'>Carthage/Checkouts/Yams/Tests/YamsTests/EncoderTests.swift#L937</a>**: Colon Violation: Colons should be next to the identifier when specifying a type and next to the key in dictionary literals. (colon)",
47
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Yams/Tests/YamsTests/EncoderTests.swift#L253'>Carthage/Checkouts/Yams/Tests/YamsTests/EncoderTests.swift#L253</a>**: Superfluous Disable Command Violation: 'unused_private_declaration' is not a valid SwiftLint rule. Please remove it from the disable command. (superfluous_disable_command)",
48
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/SWXMLHash/Source/XMLIndexer+XMLIndexerDeserializable.swift#L538'>Carthage/Checkouts/SWXMLHash/Source/XMLIndexer+XMLIndexerDeserializable.swift#L538</a>**: 'public' modifier is redundant for instance method declared in a public extension",
49
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/SWXMLHash/Source/XMLIndexer+XMLIndexerDeserializable.swift#L552'>Carthage/Checkouts/SWXMLHash/Source/XMLIndexer+XMLIndexerDeserializable.swift#L552</a>**: 'public' modifier is redundant for instance method declared in a public extension",
50
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Result/Result/NoError.swift#L8'>Carthage/Checkouts/Result/Result/NoError.swift#L8</a>**: Will never be executed"
51
+ ]
52
+ end
53
+
54
+ it 'ignores file when ignored_files matches' do
55
+ @xcode_summary.ignored_files = 'Carthage/**/Yams/**'
56
+ @xcode_summary.report('spec/fixtures/swiftlint.xcresult')
57
+ expect(@dangerfile.status_report[:warnings]).to eq [
58
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/SWXMLHash/Source/XMLIndexer+XMLIndexerDeserializable.swift#L538'>Carthage/Checkouts/SWXMLHash/Source/XMLIndexer+XMLIndexerDeserializable.swift#L538</a>**: 'public' modifier is redundant for instance method declared in a public extension",
59
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/SWXMLHash/Source/XMLIndexer+XMLIndexerDeserializable.swift#L552'>Carthage/Checkouts/SWXMLHash/Source/XMLIndexer+XMLIndexerDeserializable.swift#L552</a>**: 'public' modifier is redundant for instance method declared in a public extension",
60
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Result/Result/NoError.swift#L8'>Carthage/Checkouts/Result/Result/NoError.swift#L8</a>**: Will never be executed"
61
+ ]
62
+ end
63
+
64
+ it 'ignores file when ignored_files is an array and matches' do
65
+ @xcode_summary.ignored_files = ['Carthage/**/Yams/**', 'Carthage/**/SWXMLHash/**']
66
+ @xcode_summary.report('spec/fixtures/swiftlint.xcresult')
67
+ expect(@dangerfile.status_report[:warnings]).to eq [
68
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Carthage/Checkouts/Result/Result/NoError.swift#L8'>Carthage/Checkouts/Result/Result/NoError.swift#L8</a>**: Will never be executed"
69
+ ]
70
+ end
71
+
72
+ it 'formats test errors' do
73
+ @xcode_summary.report('spec/fixtures/swiftlint.xcresult')
74
+ expect(@dangerfile.status_report[:errors]).to eq [
75
+ "**SwiftLintFrameworkTests.ColonRuleTests.testColonWithoutApplyToDictionaries()**: XCTAssertEqual failed: (\"0\") is not equal to (\"1\") <br /> <a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Tests/SwiftLintFrameworkTests/TestHelpers.swift#L169'>Tests/SwiftLintFrameworkTests/TestHelpers.swift#L169</a>"
76
+ ]
77
+ end
78
+
79
+ it 'formats errors' do
80
+ @xcode_summary.report('spec/fixtures/build_error.xcresult')
81
+ expect(@dangerfile.status_report[:errors]).to eq [
82
+ 'Testing cancelled because the build failed.',
83
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Source/SwiftLintFramework/Extensions/QueuedPrint.swift#L13'>Source/SwiftLintFramework/Extensions/QueuedPrint.swift#L13</a>**: Use of unresolved identifier 'queue'",
84
+ "**<a href='https://github.com/realm/SwiftLint/blob/f211694e7def13785ff62047386437534541d7b3/Source/SwiftLintFramework/Extensions/QueuedPrint.swift#L17'>Source/SwiftLintFramework/Extensions/QueuedPrint.swift#L17</a>**: Use of unresolved identifier 'queue'"
85
+ ]
86
+ end
87
+
88
+ it 'report warning and error counts' do
89
+ result = @xcode_summary.warning_error_count('spec/fixtures/build_error.xcresult')
90
+ expect(result).to eq '{"warnings":21,"errors":3}'
91
+ end
92
+
93
+ context 'with inline_mode' do
94
+ before do
95
+ @xcode_summary.inline_mode = true
96
+ end
97
+
98
+ it 'asserts errors on the line' do
99
+ allow(@xcode_summary).to receive(:fail)
100
+ @xcode_summary.report('spec/fixtures/build_error.xcresult')
101
+ expect(@xcode_summary).to have_received(:fail).with(
102
+ instance_of(String),
103
+ sticky: false,
104
+ file: 'Source/SwiftLintFramework/Extensions/QueuedPrint.swift',
105
+ line: 13
106
+ )
107
+ expect(@xcode_summary).to have_received(:fail).with(
108
+ instance_of(String),
109
+ sticky: false,
110
+ file: 'Source/SwiftLintFramework/Extensions/QueuedPrint.swift',
111
+ line: 17
112
+ )
113
+ expect(@xcode_summary).to have_received(:fail).with(
114
+ 'Testing cancelled because the build failed.',
115
+ sticky: false
116
+ )
117
+ end
118
+
119
+ it 'asserts warning on the line' do
120
+ allow(@xcode_summary).to receive(:warn)
121
+ @xcode_summary.report('spec/fixtures/swiftlint.xcresult')
122
+ expect(@xcode_summary).to have_received(:warn).with(
123
+ instance_of(String),
124
+ sticky: false,
125
+ file: 'Carthage/Checkouts/SWXMLHash/Source/XMLIndexer+XMLIndexerDeserializable.swift',
126
+ line: 538
127
+ )
128
+ end
129
+ end
130
+
131
+ context 'with ignores_warnings' do
132
+ before do
133
+ @xcode_summary.ignores_warnings = true
134
+ end
135
+
136
+ it 'shows no warnings' do
137
+ @xcode_summary.report('spec/fixtures/swiftlint.xcresult')
138
+ expect(@dangerfile.status_report[:warnings]).to eq []
139
+ end
140
+
141
+ it 'shows errors' do
142
+ @xcode_summary.report('spec/fixtures/build_error.xcresult')
143
+ expect(@dangerfile.status_report[:warnings]).to eq []
144
+ expect(@dangerfile.status_report[:errors].count).to_not eq 0
145
+ end
146
+
147
+ it 'reports warning and error counts with no warnings' do
148
+ result = @xcode_summary.warning_error_count('spec/fixtures/build_error.xcresult')
149
+ expect(result).to eq '{"warnings":0,"errors":3}'
150
+ end
151
+ end
152
+
153
+ context 'with ignored_results' do
154
+ before do
155
+ @xcode_summary.ignored_results do |result|
156
+ result.message.include?('public extension') || result.message.include?('unresolved')
157
+ end
158
+ end
159
+
160
+ it 'asserts no errors' do
161
+ @xcode_summary.report('spec/fixtures/build_error.xcresult')
162
+ expect(@dangerfile.status_report[:errors].count).to eq 1
163
+ end
164
+
165
+ it 'asserts no warnings' do
166
+ @xcode_summary.report('spec/fixtures/swiftlint.xcresult')
167
+ expect(@dangerfile.status_report[:warnings].count).to eq 19
168
+ end
169
+
170
+ it 'report warning and error counts' do
171
+ result = @xcode_summary.warning_error_count('spec/fixtures/build_error.xcresult')
172
+ expect(result).to eq '{"warnings":19,"errors":1}'
173
+ end
174
+ end
175
+
176
+ context 'without strict' do
177
+ before do
178
+ @xcode_summary.strict = false
179
+ end
180
+
181
+ it 'shows errors as warnings' do
182
+ @xcode_summary.report('spec/fixtures/build_error.xcresult')
183
+ expect(@dangerfile.status_report[:warnings].count).to_not eq 0
184
+ expect(@dangerfile.status_report[:errors]).to eq []
185
+ end
186
+
187
+ it 'report warning and error counts' do
188
+ result = @xcode_summary.warning_error_count('spec/fixtures/build_error.xcresult')
189
+ expect(result).to eq '{"warnings":21,"errors":3}'
190
+ end
191
+ end
192
+ end
193
+ end
194
+
195
+ # Second environment with different request_source
196
+ describe 'with bitbucket request_source' do
197
+ before do
198
+ @dangerfile = testing_bitbucket_dangerfile
199
+ @xcode_summary = @dangerfile.xcode_summary
200
+ @xcode_summary.env.request_source.pr_json = JSON.parse(File.read('spec/fixtures/bitbucket_pr.json'), symbolize_names: true)
201
+ @xcode_summary.project_root = '/Users/diogo/src/danger-xcode_summary'
202
+ end
203
+
204
+ describe 'where request source' do
205
+ it 'should be bitbucket' do
206
+ path = @xcode_summary.send(:format_path, 'lib/xcode_summary/plugin.rb', 3)
207
+ expect(path).to eq 'lib/xcode_summary/plugin.rb'
208
+ end
209
+ end
210
+ end
211
+ end
212
+ end
213
+ # rubocop:enable Layout/LineLength