Skip to content
This repository has been archived by the owner on Sep 6, 2018. It is now read-only.

Reorganize templates in subdirectories #13

Merged
merged 7 commits into from
May 10, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ _None_

### Breaking Changes

_None_
* Templates are now organized in subdirectories for each command.
[@djbe](https://github.com/djbe)
[#13](https://github.com/SwiftGen/templates/issues/13)

### New Features

Expand Down
9 changes: 3 additions & 6 deletions Tests/TemplatesTests/ColorsTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,25 +27,22 @@ class ColorsTests: XCTestCase {
}

func testDefault() {
test(template: "colors-default",
test(template: "default",
contextNames: Contexts.all,
outputPrefix: "default",
directory: .colors,
contextVariations: variations)
}

func testRawValue() {
test(template: "colors-rawValue",
test(template: "rawValue",
contextNames: Contexts.rawOnly,
outputPrefix: "rawValue",
directory: .colors,
contextVariations: variations)
}

func testSwift3() {
test(template: "colors-swift3",
test(template: "swift3",
contextNames: Contexts.all,
outputPrefix: "swift3",
directory: .colors,
contextVariations: variations)
}
Expand Down
6 changes: 2 additions & 4 deletions Tests/TemplatesTests/FontsTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,15 @@ class FontsTests: XCTestCase {
}

func testDefault() {
test(template: "fonts-default",
test(template: "default",
contextNames: Contexts.all,
outputPrefix: "default",
directory: .fonts,
contextVariations: variations)
}

func testSwift3() {
test(template: "fonts-swift3",
test(template: "swift3",
contextNames: Contexts.all,
outputPrefix: "swift3",
directory: .fonts,
contextVariations: variations)
}
Expand Down
15 changes: 5 additions & 10 deletions Tests/TemplatesTests/ImagesTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,41 +26,36 @@ class ImagesTests: XCTestCase {
}

func testDefault() {
test(template: "images-default",
test(template: "default",
contextNames: Contexts.all,
outputPrefix: "default",
directory: .images,
contextVariations: variations)
}

func testAllValues() {
test(template: "images-allvalues",
test(template: "allvalues",
contextNames: Contexts.all,
outputPrefix: "allvalues",
directory: .images,
contextVariations: variations)
}

func testSwift3() {
test(template: "images-swift3",
test(template: "swift3",
contextNames: Contexts.all,
outputPrefix: "swift3",
directory: .images,
contextVariations: variations)
}

func testDotSyntax() {
test(template: "images-dot-syntax",
test(template: "dot-syntax",
contextNames: Contexts.all,
outputPrefix: "dot-syntax",
directory: .images,
contextVariations: variations)
}

func testDotSyntaxSwift3() {
test(template: "images-dot-syntax-swift3",
test(template: "dot-syntax-swift3",
contextNames: Contexts.all,
outputPrefix: "dot-syntax-swift3",
directory: .images,
contextVariations: variations)
}
Expand Down
15 changes: 9 additions & 6 deletions Tests/TemplatesTests/StoryboardsMacOSTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -46,26 +46,29 @@ class StoryboardsMacOSTests: XCTestCase {
}

func testDefault() {
test(template: "storyboards-osx-default",
test(template: "osx-default",
contextNames: Contexts.all,
outputPrefix: "default",
directory: .storyboardsMacOS,
directory: .storyboards,
resourceDirectory: .storyboardsMacOS,
contextVariations: variations)
}

func testSwift3() {
test(template: "storyboards-osx-swift3",
test(template: "osx-swift3",
contextNames: Contexts.all,
outputPrefix: "swift3",
directory: .storyboardsMacOS,
directory: .storyboards,
resourceDirectory: .storyboardsMacOS,
contextVariations: variations)
}

func testLowercase() {
test(template: "storyboards-osx-lowercase",
test(template: "osx-lowercase",
contextNames: Contexts.all,
outputPrefix: "lowercase",
directory: .storyboardsMacOS,
directory: .storyboards,
resourceDirectory: .storyboardsMacOS,
contextVariations: variations)
}
}
24 changes: 12 additions & 12 deletions Tests/TemplatesTests/StoryboardsiOSTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -41,34 +41,34 @@ class StoryboardsiOSTests: XCTestCase {
}

func testDefault() {
test(template: "storyboards-default",
test(template: "default",
contextNames: Contexts.all,
outputPrefix: "default",
directory: .storyboardsiOS,
directory: .storyboards,
resourceDirectory: .storyboardsiOS,
contextVariations: variations)
}

func testSwift3() {
test(template: "storyboards-swift3",
test(template: "swift3",
contextNames: Contexts.all,
outputPrefix: "swift3",
directory: .storyboardsiOS,
directory: .storyboards,
resourceDirectory: .storyboardsiOS,
contextVariations: variations)
}

func testLowercase() {
test(template: "storyboards-lowercase",
test(template: "lowercase",
contextNames: Contexts.all,
outputPrefix: "lowercase",
directory: .storyboardsiOS,
directory: .storyboards,
resourceDirectory: .storyboardsiOS,
contextVariations: variations)
}

func testUppercase() {
test(template: "storyboards-uppercase",
test(template: "uppercase",
contextNames: Contexts.all,
outputPrefix: "uppercase",
directory: .storyboardsiOS,
directory: .storyboards,
resourceDirectory: .storyboardsiOS,
contextVariations: variations)
}
}
21 changes: 7 additions & 14 deletions Tests/TemplatesTests/StringsTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,57 +26,50 @@ class StringsTests: XCTestCase {
}

func testDefault() {
test(template: "strings-default",
test(template: "default",
contextNames: Contexts.all,
outputPrefix: "default",
directory: .strings,
contextVariations: variations)
}

func testSwift3() {
test(template: "strings-swift3",
test(template: "swift3",
contextNames: Contexts.all,
outputPrefix: "swift3",
directory: .strings,
contextVariations: variations)
}

func testNoCommentsSwift3() {
test(template: "strings-no-comments-swift3",
test(template: "no-comments-swift3",
contextNames: Contexts.all,
outputPrefix: "no-comments-swift3",
directory: .strings,
contextVariations: variations)
}

func testGenstrings() {
test(template: "strings-genstrings",
test(template: "genstrings",
contextNames: Contexts.all,
outputPrefix: "genstrings",
directory: .strings,
contextVariations: variations)
}

func testStructured() {
test(template: "strings-structured",
test(template: "structured",
contextNames: Contexts.all,
outputPrefix: "structured",
directory: .strings,
contextVariations: variations)
}

func testDotSyntax() {
test(template: "strings-dot-syntax",
test(template: "dot-syntax",
contextNames: Contexts.all,
outputPrefix: "dot-syntax",
directory: .strings,
contextVariations: variations)
}

func testDotSyntaxSwift3() {
test(template: "strings-dot-syntax-swift3",
test(template: "dot-syntax-swift3",
contextNames: Contexts.all,
outputPrefix: "dot-syntax-swift3",
directory: .strings,
contextVariations: variations)
}
Expand Down
25 changes: 17 additions & 8 deletions Tests/TemplatesTests/TestsHelper.swift
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ class Fixtures {
case colors = "Colors"
case fonts = "Fonts"
case images = "Images"
case storyboards = "Storyboards"
case storyboardsiOS = "Storyboards-iOS"
case storyboardsMacOS = "Storyboards-macOS"
case strings = "Strings"
Expand Down Expand Up @@ -110,8 +111,8 @@ class Fixtures {
return data
}

static func template(for name: String) -> String {
return string(for: name, subDirectory: "templates")
static func template(for name: String, sub: Directory) -> String {
return string(for: name, subDirectory: "templates/\(sub.rawValue.lowercased())")
}

static func output(for name: String, sub: Directory) -> String {
Expand Down Expand Up @@ -142,38 +143,46 @@ extension XCTestCase {

- Parameter template: The name of the template (without the `stencil` extension)
- Parameter contextNames: A list of context names (without the `plist` extension)
- Parameter outputPrefix: Prefix for the output files, becomes "{outputPrefix}-context-{contextName}.swift"
- Parameter outputPrefix: Prefix for the output files, becomes "{outputPrefix}-context-{contextName}.swift".
Defaults to template name.
- Parameter directory: The directory to look for files in (correspons to de command)
- Parameter resourceDirectory: The directory to look for files in (corresponds to de command)
- Parameter contextVariations: Optional closure to generate context variations.
*/
func test(template templateName: String,
contextNames: [String],
outputPrefix: String,
outputPrefix: String? = nil,
directory: Fixtures.Directory,
resourceDirectory: Fixtures.Directory? = nil,
file: StaticString = #file,
line: UInt = #line,
contextVariations: VariationGenerator? = nil) {
let template = StencilSwiftTemplate(templateString: Fixtures.template(for: "\(templateName).stencil"),
let templateString = Fixtures.template(for: "\(templateName).stencil", sub: directory)
let template = StencilSwiftTemplate(templateString: templateString,
environment: stencilSwiftEnvironment())

// default values
let contextVariations = contextVariations ?? { [(context: $1, suffix: "")] }
let prefix = outputPrefix ?? templateName
let resourceDir = resourceDirectory ?? directory

for contextName in contextNames {
print("Testing context '\(contextName)'...")
let context = Fixtures.context(for: "\(contextName).plist", sub: directory)
let context = Fixtures.context(for: "\(contextName).plist", sub: resourceDir)

// generate context variations
guard let variations = try? contextVariations(contextName, context) else {
fatalError("Unable to generate context variations")
}

for (index, (context: context, suffix: suffix)) in variations.enumerated() {
let outputFile = "\(outputPrefix)-context-\(contextName)\(suffix).swift"
let outputFile = "\(prefix)-context-\(contextName)\(suffix).swift"
if variations.count > 1 { print(" - Variation #\(index)... (expecting: \(outputFile))") }
guard let result = try? template.render(context) else {
fatalError("Unable to render template")
}

let expected = Fixtures.output(for: outputFile, sub: directory)
let expected = Fixtures.output(for: outputFile, sub: resourceDir)
XCTDiffStrings(result, expected, file: file, line: line)
}
}
Expand Down